将值读取为公式而不是数据时出现问题

时间:2018-09-17 12:03:17

标签: python numpy python-3.6 openpyxl

当我想阅读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)
  

我收到以下错误:

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

ValueError :无法将字符串转换为float:'= A1 + 1'

2 个答案:

答案 0 :(得分:0)

一种但很少见的可能性是,“ Libro1.xlsx”中的单元格被标记为文本格式,从而阻止了其重新计算。

打开Excel文件时,您看到=A1+1的值是重新计算的还是文本形式? 无论如何,将最简单的数字格式应用于Excel文件中的所有单元格(选择单元格并选择格式),并消除任何条件格式。

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

答案 1 :(得分:0)

x and y are object. Convert that into list before assigning values.

Try this:

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