Pregunta

Tengo un script en Python usando openpyxl para leer un archivo de excel.Esto se utiliza para funcionar bien, hasta que descubrí que openpyxl no se instaló correctamente, lo que me dio errores en la ejecución de la secuencia de comandos fuera de mi IDE.Después de arreglar esto, sin embargo, la secuencia de comandos devuelve los valores numéricos de los que no entiendo de dónde vienen, en lugar de los valores reales.

La secuencia de comandos:

wb=load_workbook(r'C:\test.xlsx', use_iterators = True)
ws=wb.get_sheet_by_name('Sheet1')

#Iterate trough all rows
for row in ws.iter_rows(row_offset=1):
    for cell in row:
        #If the column == A, check if there's a website value
        if cell.column == 'A':
            try:
                print cell.internal_value
                self.match = re.match(regex, cell.internal_value)
                if self.match:
                    self.match = 'OK'
            except:
                pass

La impresión en el bloque try se agrega a ver lo que es devuelto por el programa, que es la siguiente para los cinco primeros registros:

0
1
31
49
143

Debe ser:

None
Website
www.coolblue.nl
www.bol.com
www.elektrosky.nl

¿Por qué mi script de retorno de estos valores numéricos en lugar de los valores reales?

EDITAR: 6 primeras filas de mi archivo xml (primera fila está vacía)

Website           |     Sender    |     Price  |    Mark(s)       |     Payment methods
www.coolblue.nl         PostNL          Free      Thuiswinkel           Ideal, Visa, Mastercard
www.bol.com             PostNL          Free      Thuiswinkel           Ideal, Visa, Mastercard
www.elektrosky.nl       PostNL         € 5,00     Webshop keurmerk      Ideal, Visa, Mastercard, Amex, PayPal
www.belsimpel.nl        PostNL, DPD    € 6,95     Thuiswinkel           Ideal, Visa, Mastercard
¿Fue útil?

Solución

El problema es que estás usando .internal_value.Por defecto, Excel almacena las cadenas en una tabla de búsqueda y mantiene el índice de la celda.Usted debería estar bien si usted acaba de usar .value

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top