您好我一直在使用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)')
答案 0 :(得分:0)
Excel使用大写AVERAGE()
而非小写average()
,因此您需要将其与XlsxWriter一起使用。
请参阅XlsxWriter文档的Dealing with formula errors部分。
答案 1 :(得分:0)
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?