gpt4 book ai didi

python-3.x - 使用python将公式添加到excel电子表格

转载 作者:行者123 更新时间:2023-12-05 05:00:53 25 4
gpt4 key购买 nike

我正在尝试使用 python 将公式插入到 excel 电子表格中。公式的例子是:

  • =VLOOKUP(B3|"结算信息"!$B$2:$R$2199|17|FALSE)
  • =SUMIFS("付款和费用"!$I$2:$I$6445|"付款和费用"!$B$2:$B$6445|总结!$B3)
  • =+E3-F3-G3-I3
  • =IF(AND(I3>0|I3-N3>=-0.1|I3-N3<=0.1)|"is"|“否”)

我尝试使用 xlsxwriter,当在 excel 中打开 ss 时,它通过删除“不可读”的内容进行修复,并且这些单元格显示为 0。我看到评论说重新计算应该在使用时重新打开工作表xlsxwriter 但看起来不像是正在完成 ( https://xlsxwriter.readthedocs.io/working_with_formulas.html )

有没有什么方法可以将这些公式导入 excel 而不会在打开时被 excel 删除?感谢您的指点。

我将其简化为尽可能简单:

当我运行下面的代码然后尝试打开 excel 电子表格时,我收到一条错误消息“我们发现某些内容存在问题...您是否希望我们尝试恢复...如果您信任源选择是的”如果我选择是,那么我会收到错误消息“已删除记录:来自/xl/worksheets/sheet1.xml 部分的公式”

如果我继续,工作表将打开并且该字段中有一个 0。

from xlsxwriter.workbook import Workbook

workbook = Workbook('test.xlsx')
worksheet = workbook.add_worksheet('Summary')
worksheet.write_formula('A2', '=VLOOKUP(B3,"Settlement Info"!$B$2:$R$2199,17,FALSE)')

workbook.close()

如果我查看 https://xlsxwriter.readthedocs.io/working_with_formulas.html 的信息有信息:

XlsxWriter doesn’t calculate the result of a formula and instead stores the value 0 as the formula result. It then sets a global flag in the XLSX file to say that all formulas and functions should be recalculated when the file is opened.

This is the method recommended in the Excel documentation and in general it works fine with spreadsheet applications. However, applications that don’t have a facility to calculate formulas will only display the 0 results. Examples of such applications are Excel Viewer, PDF Converters, and some mobile device applications.

我可能不明白,因为我认为公式应该留在表格中。

最佳答案

您可以使用 XlsxWriter 创建 Excel 可以处理的任何公式。但是,您需要注意公式的格式设置,以确保它与美国版本的 Excel(这是存储公式的默认格式)相匹配。

因此,如果您使用逗号而不是竖线,您的公式可能会按预期工作:

=VLOOKUP(B3,"Settlement Info"!$B$2:$R$2199,17,FALSE)
=SUMIFS("Payment and Fees"!$I$2:$I$6445,"Payment and Fees"!$B$2:$B$6445,Summary!$B3)
=IF(AND(I3>0,I3-N3>=-0.1|I3-N3<=0.1),"Yes","No")

这个应该无需修改即可工作:

=+E3-F3-G3-I3

请参阅 Working with Formulas 上 XlsxWriter 文档的这一部分.

关于更新问题的更新:

公式还是有错误。您需要使用单引号而不是双引号。您还需要为要引用的公式添加另一个工作表。像这样:

from xlsxwriter.workbook import Workbook

workbook = Workbook('test.xlsx')
worksheet = workbook.add_worksheet('Summary')
worksheet.write_formula('A2', "=VLOOKUP(B3,'Settlement Info'!$B$2:$R$2199,17,FALSE)")

workbook.add_worksheet('Settlement Info')

workbook.close()

Excel 中仍然存在#N/A 错误,但这与 VLOOKUP 范围内没有数据有关:

输出:

enter image description here

关于python-3.x - 使用python将公式添加到excel电子表格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62915308/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com