python - 使用用公式编写的单元格中的值

标签 python excel openpyxl

我在 Excel 中有两列。第一个(C 列)有带值的单元格,第二个(B 列),我使用脚本从第一个带有 Excel 公式的单元格中提取一些值。

现在我想在另一列中使用第二列的值,脚本没有任何错误,但给出了空单元格,因为第二列包含公式。

是否可以粘贴值或仅从第二列中提取值?

这是我的代码:

for i in range(0,len(listaunica)):
ws4.cell(row=i+1,column=3).value=listaunica[i]


for i in range(0,len(listaunica)):
    ws4.cell(row=i+1,column=2).value='=iferror(find(".",C{0}),C{0})'.format(i+1)

有人可以帮我解决这个问题吗?

最佳答案

我不完全了解你的情况,所以我会解释一些可能性:

(1) 您有一个 Excel 工作簿,使用 Excel 本身保存。在这种情况下,B 列应该有两个公式和这些公式的结果,因为 Excel 会计算它们。

(2) 您有一个 Excel 工作簿,该工作簿是使用其他方法保存的,例如由 OpenPyXL 编写的,并且尚未(尚未)被 Excel 打开和保存。在这种情况下,您很可能将或者公式结果存储在 B 列中。

当您使用 OpenPyXL 阅读时,您必须选择是要公式还是结果。这由 data_only 参数控制。如果您只想要结果,请将此设置为 True。如果您的工作簿保存在 Excel 中,因此同时具有公式和结果,那么在 OpenPyXL 中读取它们的方法是打开工作簿两次,一次使用 data_only=False ,一次使用 data_only=真。很麻烦,但这就是 OpenPyXL 的设计方式。

如果您有来自场景 (2) 的工作簿,并且 B 列看起来仍然有公式,那么很可能尝试使用 data_only=True 打开工作簿只会为 B 列返回零. 在 Excel 中打开并保存此工作簿之前,您将无法从该工作簿中获取结果。

关于python - 使用用公式编写的单元格中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44041660/

相关文章:

python - 为需要 kwargs 的 Callable 输入提示

python - Pandas - 如何对格式化为字符串的周数和年数进行排序?

excel - 如何在excel中将字符串分解为子字符串?

excel - 在 Access 中使用 Excel 电子表格

python - 使用实时 Python 数据更新 Excel 电子表格

python - 如何在正则表达式匹配后从数据帧中提取字符串

python - python 中的特征选择

ruby-on-rails - Ole::Storage::FormatError: OLE2 签名无效

java - 将 excel 文件转换为 pdf 文件

python - 如何使用 openpyxl 设置图表区域的图形属性