您好,我一直在使用xlsxwriter删除一些数据。我一直在通过xpath ->文本来识别数据。如以下代码所示。我一直在尝试使用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)')发布于 2018-02-23 04:30:54
XlsxWriter使用大写的AVERAGE(),而不是小写的Excel,因此您需要将其与Excel一起使用。
请参阅XlsxWriter文档的Dealing with formula errors部分。
发布于 2018-02-23 04:43:09
XlsxWriter不计算公式的结果,而是将值0存储为公式结果。然后,它在XLSX文件中设置一个全局标志,表示在打开该文件时应重新计算所有公式和函数。
这是Excel文档中推荐的方法,通常它适用于电子表格应用程序。但是,没有计算公式工具的应用程序将只显示0结果。这类应用程序的示例有Excel Viewer、PDF Converters和一些移动设备应用程序。
如果需要,还可以使用write_formula()的可选value参数指定公式的计算结果
因此,在编写公式后,如果按下查看结果(例如,关闭/重新生成,但可能太“粗鲁”),则需要采取一些操作来执行计算。
PS:鉴于John McNamara给出了不同的答案,我猜他的答案是正确的。从this上看,我猜我的答案可能也是正确的。我不知道0 (在[1]中)和#DIV/0! (在OP中)存在差异的原因。
PS2:其他有趣的问题:How to make unoconv auto calculate formulae before converting into pdf?
https://stackoverflow.com/questions/48933774
复制相似问题