Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用由公式写入的单元格中的值_Python_Excel_Openpyxl - Fatal编程技术网

Python 使用由公式写入的单元格中的值

Python 使用由公式写入的单元格中的值,python,excel,openpyxl,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))

我在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)
有人能帮我吗?

试试这个

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)
ws4.cell(row=i+1,column=2).value = ws4.cell(row=i+1,column=2).value

作为参考?

我不完全了解您的情况,因此我将解释一些可能性:

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

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

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

如果您有场景(2)中的工作簿,而B列看起来仍然有公式,则很可能尝试使用
data\u only=True
打开工作簿时,B列只返回零。在Excel中打开并保存该工作簿之前,您将无法从该工作簿中获得结果。

相关: