将值作为公式而不是数据读取的问题

Problems with reading values as formula instead of data

当我想阅读我的 Excel:

from openpyxl import load_workbook
import numpy as np

"read Excel"
wb = load_workbook('Libro1.xlsx')
hoja_1 = wb.get_sheet_by_name('1')

x = np.zeros(hoja_1.max_row)
y = np.zeros(hoja_1.max_row)

for i in range(0, hoja_1.max_row):
    x[i] = hoja_1.cell(row = i + 1, column = 1).value
    y[i] = hoja_1.cell(row = i + 1, column = 2).value

print(x)
print(y)

I get an error in:

x[i] = hoja_1.cell(row = i + 1, column = 1).value 

ValueError: could not convert string to float: '=A1+1'

一种但相当罕见的可能性是 'Libro1.xlsx' 中的单元格标记为文本格式,这会阻止它重新计算。

当您打开 Excel 文件时,您看到 =A1+1 的值是重新计算的还是文本的? 在任何情况下,对 Excel 文件中的所有单元格应用最简单的数字格式(select 单元格并选择格式),同时消除任何条件格式。

此处描述的类似问题:https://bitbucket.org/openpyxl/openpyxl/issues/699/valueerror-could-not-convert-string-to。确保您的 openpyxl 版本是最新的。

x 和 y 是对象。在赋值之前将其转换为列表。

试试这个:

x = 列表(np.zeros(hoja_1.max_row)) y = 列表(np.zeros(hoja_1.max_row))