用Python自动化Excel

8 投票
2 回答
14125 浏览
提问于 2025-04-17 19:26

在我公司,我们在开发和生产环境中使用Linux系统。不过,我们有一台运行Windows和Excel的机器,因为我们需要用一个第三方的Excel插件来获取金融市场数据。这个插件提供了一些功能(就像Excel里的函数),可以把这些数据获取到本地机器上,然后再发送到MySql数据库。我们还开发了一些VBA脚本来自动化这个任务,但结果还是不太满意。

我在考虑用Python来完成这些工作,但在开始之前,我需要找到一个Python库,能够做到以下几点:

  1. 用Python来操作Excel(包括它的插件),并且在不打开Excel的情况下使用它的功能?
  2. 如果需要打开Excel,我希望能自动化这个任务,让它每天在特定的时间执行脚本(因为市场数据需要在特定时间更新)。

谢谢你的建议!

2 个回答

2

作为一种替代方案,你可以考虑使用openpyxl这个库。

import openpyxl
wb= openpyxl.Workbook()
ws = wb.get_active_sheet()
ws.title = 'My Title'
wb.save('C:\\Development\\Python\\alpha.xlsx')

这是我正在学习的一本书中的一章内容。

https://automatetheboringstuff.com/chapter12/

祝好运!

12

你需要安装Python的Win32扩展,这个扩展可以在这里找到 - http://sourceforge.net/projects/pywin32/

现在这个项目已经迁移到GitHub了,你可以在这里查看:https://github.com/mhammond/pywin32

安装好之后,你就可以使用COM了。

from win32com.client import Dispatch
excel = Dispatch('Excel.Application')
wb = excel.Workbooks.Open(r'c:\path\to\file.xlsx')
ws = wb.Sheets('My Sheet')
# do other stuff, just like VBA
wb.Close()
excel.Quit()

你可以把你的脚本放到Windows任务调度器里,这样可以在你需要的时间自动运行。

撰写回答