openpyxl devuelve valores numéricos
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
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