Python自动化Excel

问题描述 投票:8回答:2

在我的公司,我们在开发和生产环境中使用Linux。但是我们有一台运行Windows和Excel的机器,因为我们使用第三方应用程序excel addin来获取金融市场数据到机器。该加载项提供了一些函数(就像Excel函数一样),用于将这些数据放入本地计算机,然后发送回MySql数据库。我们还开发了一些VBA脚本来自动完成任务,但仍然不满足于结果。我正在考虑使用Python来完成所有这些工作,但在进入之前,我需要找到一个可以做到的python包

  1. 使用python来操作Excel(及其加载项)并使用其功能而无需打开Excel?
  2. 如果我需要打开Excel,我需要自动执行每天执行脚本的任务,或者在一天中的特定时刻(市场数据需要在特定时间内执行)

谢谢你的建议

python excel pyxll
2个回答
11
投票

你需要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任务计划程序上以运行所需的时间。


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/

运气

© www.soinside.com 2019 - 2024. All rights reserved.