用Python自动化Excel
在我公司,我们在开发和生产环境中使用Linux系统。不过,我们有一台运行Windows和Excel的机器,因为我们需要用一个第三方的Excel插件来获取金融市场数据。这个插件提供了一些功能(就像Excel里的函数),可以把这些数据获取到本地机器上,然后再发送到MySql数据库。我们还开发了一些VBA脚本来自动化这个任务,但结果还是不太满意。
我在考虑用Python来完成这些工作,但在开始之前,我需要找到一个Python库,能够做到以下几点:
- 用Python来操作Excel(包括它的插件),并且在不打开Excel的情况下使用它的功能?
- 如果需要打开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任务调度器里,这样可以在你需要的时间自动运行。