如果条件公式与引用失败,则为openpyxl

使用python 2.7和openpyxl,我将IF公式插入到引用其他工作表中字段的excel工作表中。

而其他公式的工作(CONTIF,COUTN,SUM等),我没有find这个“简单”如果公式不起作用的原因。 只有IF是这个问题

这是我的代码

for i in range(0,len(sortedWorkers)): for a, rr in enumerate(dates): row_nb = i + 3 coll = 3 + a clmn_letter = get_column_letter(coll + 3) # =IF(Worked!I$2=7;Worked!I3;"") valFormula = '=IF(Worked!%s$2=7;Worked!%s%s;"")' %(clmn_letter,clmn_letter, str(row_nb)) _cl = ws12.cell(column= coll, row= row_nb, value=valFormula) 

在评论中你可以select公式。 格式是正确的。 如果我手动将其插入到Excel中,它也可以工作。

另外字段坐标和一切匹配。

有什么build议么? 谢谢

公式有时在XML中以不同于它们出现在GUI中的顺序进行序列化。 他们可能有前缀,或使用不同的词,或者,我认为这可能是这种情况,他们使用不同的参数之间的分隔符。 在使用逗号作为小数点分隔符的国家/地区,使用分号分隔GUI中的参数,但XML将使用逗号。

您可以通过查看由Excel创build的文件的来源来检查。

所以最后的问题是使用IF公式逗号必须用“,”不是半冒号“;”

注意,您必须使用英文名称作为函数,函数参数必须用逗号分隔,而不要使用其他标点符号(如分号)。