我在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)
有人能帮我吗?在
试试这个
供参考Does .Value = .Value act similar to Evaluate() function in VBA??在
我不完全了解您的情况,因此我将解释一些可能性:
(1)您有一个Excel工作簿,该工作簿是用Excel本身保存的。在这种情况下,B列应该有两个公式和这些公式的结果,因为Excel会计算它们。在
(2)您有一个使用其他方法保存的Excel工作簿,例如由OpenPyXL编写,但尚未被Excel打开和保存。在本例中,您很可能将公式或结果存储在列B中
当你使用OpenPyXL阅读时,你必须选择你想要的是公式还是结果。这由}。虽然笨重,但OpenPyXL就是这样设计的。在
data_only
参数控制。如果只需要结果,请将其设置为True
。如果您的工作簿保存在Excel中,因此包含公式和结果,那么在OpenPyXL中读取它们的方法是打开工作簿两次,一次使用data_only=False
,一次使用{如果您有场景(2)中的工作簿,而B列看起来仍然包含公式,则使用
data_only=True
打开工作簿很可能只会为B列返回0。只有在Excel中打开工作簿并保存它,才能从中获取结果。在相关问题 更多 >
编程相关推荐