Xlsxwriter计数/求和函数

时间:2018-02-22 17:30:57

标签: python excel

您好我一直在使用xlsxwriter来废弃一些数据。 我一直在通过xpaths识别数据 - >文本。如下面的代码所示。 我一直在尝试使用xlsxwriter在某些单元格中执行一些平均值。 但是输出excel文件我得到“#DIV / 0!”在细胞G2中但是当我双击每个单独的细胞两次时,那些细胞然后得到平均值,我必须为我平均的所有细胞做这个。知道我怎么能解决这个问题吗?

for elem in driver.find_elements_by_xpath('//*[@id="financials_table_ratio"]/tbody/tr[45]/td[2]'):
    PER1=(elem.text)
for elem in driver.find_elements_by_xpath('//*[@id="financials_table_ratio"]/tbody/tr[45]/td[3]'):
    PER2=(elem.text)
for elem in driver.find_elements_by_xpath('//*[@id="financials_table_ratio"]/tbody/tr[45]/td[4]'):
    PER3=(elem.text)
for elem in driver.find_elements_by_xpath('//*[@id="financials_table_ratio"]/tbody/tr[45]/td[5]'):
    PER4=(elem.text)

worksheet.write('B2',PER)
worksheet.write('C2',PER1)
worksheet.write('D2',PER2)
worksheet.write('E2',PER3)
worksheet.write('F2',PER4)

worksheet.write_formula('G2', '=average(C2:F2)')

2 个答案:

答案 0 :(得分:0)

Excel使用大写AVERAGE()而非小写average(),因此您需要将其与XlsxWriter一起使用。

请参阅XlsxWriter文档的Dealing with formula errors部分。

答案 1 :(得分:0)

来自Official documentation

  

XlsxWriter不会计算公式的结果而是计算结果   将值0存储为公式结果。然后它设置一个全局标志   在XLSX文件中说所有的公式和函数都应该是   文件打开时重新计算。

     

这是Excel文档中推荐的方法   一般来说它适用于电子表格应用程序。然而,   没有计算公式的工具的应用程序   仅显示0结果。此类应用程序的示例是Excel   查看器,PDF转换器和一些移动设备应用程序。

     

如果需要,还可以指定计算结果   使用value

的可选write_formula()参数的公式

因此,在编写公式之后,需要采取一些动作来执行计算,如果按下一个来查看结果(例如,关闭/重新启动,但它可能太“粗鲁”)。

PS:鉴于John McNamara给出了不同的答案,我想他的答案是正确的。从this我猜我的回答也许也是正确的。我不知道差异0(在{1])与#DIV/0!(在OP中)的原因。

PS2:其他有趣的问题:How to make unoconv auto calculate formulae before converting into pdf?