【问题标题】:Modifying, recalculating and and extracting results from Excel in Python在 Python 中修改、重新计算和从 Excel 中提取结果
【发布时间】:2013-10-07 09:56:55
【问题描述】:

我想尝试制作一个执行以下操作的程序,最好是在 Python 中,但如果它需要是 C# 或其他,那没关系。

  1. 将数据写入 Excel 电子表格
  2. 让 Excel 在修改后的电子表格中重新计算公式等
  3. 将结果提取出来

我以前使用过openpyxl之类的东西,但这显然不能执行第2步。是一种无需在Excel中打开电子表格即可重新计算电子表格的方法吗?任何想法都非常感谢。

谢谢,

杰克

【问题讨论】:

  • 如果它需要是 C#,它也可能是 IronPython :) 另外,你真的需要它来专门与 MS Excel 一起工作吗?还是您通常只需要使用 Python 完成电子表格任务?
  • 您好 Erik,我想让不太熟悉 python/编码的人更改计算的执行方式,所以我想将它保存到 Excel 或 LibreOffice。

标签: python excel com pywin32 office-automation


【解决方案1】:

您需要某种 UI 自动化来控制 UI 应用程序,例如 Excel。 Excel 可能会公开一些 COM 接口,您应该能够根据需要使用这些接口。 Python 具有您应该安装的 PyWin32 库,之后您将拥有可用的 win32com 模块。

另见:

如果您不必专门使用 Excel,而只需要使用 Python 制作电子表格,您可能需要查看 http://manns.github.io/pyspread/

【讨论】:

  • 谢谢,两个很棒的建议。我想将它保留在 Excel(或者可能是 LibreOffice)中,因为它旨在供不太熟悉编码的人使用。我将研究 Excel 的 COM 接口。
  • 我添加了一个链接,其中包含一个 Excel 与 Python 的自动化会话示例,它似乎正是您所要求的。
  • 谢谢 Erik,看起来很完美!
【解决方案2】:

您可以使用 pandas 读取数据,使用 python 重新计算然后写入新文件。

对于熊猫来说是这样的:

#Import Excel file
xls = pd.ExcelFile('path_to_file' + '/' + 'file.xlsx')
xls.parse('nyc-condominium-dataset', index_col='property_id', na_values=['NA'])

所以不难。这里link 给熊猫。

玩得开心!

【讨论】:

  • 感谢您的建议。不幸的是,这个想法是让 Python 经验较少的人能够更改在 Excel 中执行计算的方式,因此确实需要在 Excel 中重新计算。
  • 这不是回答所提出的具体问题
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-02-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-12-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多