Cómo acceder al valor real de una celda usando el módulo openpyxl para python

Estoy teniendo un verdadero problema con esto, ya que la función cell.value devuelve la fórmula utilizada para la celda, y necesito extraer el resultado que Excel proporciona después de la operación.

Gracias.


Ok, creo que he encontrado una manera de evitarlo; Aparentemente, para acceder al valor de cell.internal, debe usar iter_rows () en su hoja de trabajo previamente, que es una lista de “RawCell”.

for row in ws.iter_rows(): for cell in row: print cell.internal_value 

Como Charlie Clark ya sugirió que puedes establecer data_only en True cuando cargues tu libro de trabajo:

 from openpyxl import load_workbook wb = load_workbook("file.xlsx", data_only=True) sh = wb["Sheet_name"] print(sh["x10"].value) 

Buena suerte 🙂

Desde el código parece que estás usando el lector optimizado: read_only=True . Puede alternar entre extraer la fórmula y su resultado utilizando el data_only=True al abrir el libro de trabajo.

internal_value era un atributo privado que solía referirse solo al valor (sin tipo) que usa Excel, es decir. Números con una época en 1900 para fechas en oposición a la forma de Python. Se ha eliminado de la biblioteca desde que se hizo esta pregunta por primera vez.

Trate de usar cell.internal_value en cell.internal_value lugar.

Puede intentar el siguiente código. Solo proporcione la ruta del archivo de Excel y la ubicación de la celda cuyo valor necesita en términos de número de fila y número de columna a continuación en el código a continuación.

  from openpyxl import Workbook wb = Workbook() Dest_filename = 'excel_file_path' ws=wb.active print(ws.cell(row=row_number, column=column_number).value)