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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将值读取为公式而不是数据的问题相关的知识,希望对你有一定的参考价值。

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

答案

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

试试这个:

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

另一答案

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

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

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

以上是关于将值读取为公式而不是数据的问题的主要内容,如果未能解决你的问题,请参考以下文章

使用VBA将值从一个表粘贴到另一个表

如何在python中读取文件时将值组合在一起

读取 Excel 单元格值而不是计算它的公式 -openpyxl

VBA将单元格内容分配为公式而不是其结果

将值从回收器适配器传递到android中的片段

将值呈现为文本而不是 Django 表单中的字段