xlsxwriter在公式中的工作表名称中存在引号的问题

时间:2017-03-20 16:08:45

标签: python xlsxwriter

我正在使用xlsxwriter,我有一个非常具体的问题,我似乎无法找到解决方案。

     formulaDB = '=IF(J{}<>"",COUNTIFS('DB Details'!A$1:A$9999,'App Details'!A{},'DB Details'!F$1:F$9999,"<>None"),"Not Selected")'.format(appRowCount, appRowCount)  
     worksheet3.write_formula('L'+str(appRowCount),formulaDB,rowColour)  

我的问题全在引号中。对于formulaDB,我需要将整个事物封装在单引号中。在实际公式中,我需要使用单引号和双引号。配方螺丝内的单引号与封装。工作表名称需要使用单引号,公式需要使用双引号,而整个变量需要使用单引号...
如果需要,我可以重新命名工作表,但这是很多工作,因为它经常被引用,我将在输出中进行非常具体的查看。
我错过了一些明显的东西吗我尝试使用各种转义字符,但无济于事。

编辑:是的,我这是一个愚蠢的问题。我之前尝试过逃避单引号,但它失败了。似乎我错过了一个,然后在我查看错误时又错过了它。对不起,我应该能够在不寻求帮助的情况下解决这个问题。谢谢你,那些回复的人。

1 个答案:

答案 0 :(得分:1)

(这应该是一个评论,但我没有足够的声誉)。

也许我在这里遗漏了一些东西,但为什么不能逃避单引号的工作呢?即。

formulaDB = '=IF(J{}<>"",COUNTIFS(\'DB Details\'!A$1:A$9999,\'App Details\'!A{},\'DB Details\'!F$1:F$9999,"<>None"),"Not Selected")'.format(appRowCount, appRowCount)  
worksheet3.write_formula('L'+str(appRowCount),formulaDB,rowColour)

当然没有所有变量定义我无法检查这是否给出了你想要的输出,但是在一个最小的例子中,我复制了这似乎正确地在excel单元格中编写公式,单引号如预期的那样(即Excel期望解决不同的工作表名称。)