将值作为公式而不是数据读取的问题
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))
当我想阅读我的 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))