【问题标题】:Python Excel automation through Jenkins通过 Jenkins 实现 Python Excel 自动化
【发布时间】:2015-07-16 14:34:57
【问题描述】:

我正在使用 win32 python 库来自动生成 excel 文档。我还使用 Jenkins 运行将生成文档的 python 脚本。

我遇到了“另存为”功能的问题。每当我从本地机器运行 python 脚本时,它都会成功生成并保存文档。但是,当我从 jenkins 触发脚本时,它会在“调用 SaveAs”时失败。

这是我非常简单的python代码:

import win32com.client as win32
from win32com.client import Dispatch
from win32com.client import constants

excel = win32.gencache.EnsureDispatch('Excel.Application')
excel.Visible = False
excel.DisplayAlerts = False
wb = excel.Workbooks.Add()
wb.SaveAs(r"D:\HelloWorld.xlsx")
excel.Quit()

正如您在两张图片中看到的,python 调用是相同的,但它只在我的本地机器上成功。
备注:
我尝试将 jenkins 用户更改为 SYSTEM 然后更改为 LOCAL ACCOUNT 但没有任何效果。
我也尝试 chmod 文件目录,但也没有用。

更新:我需要在 excel 表中添加复选框,据我所知,这只能通过 comtypes 库或 pywin32 库来实现。如果还有其他选择,请指导我。

【问题讨论】:

标签: python excel jenkins pywin32 win32com


【解决方案1】:

尝试在不使用 com 对象的情况下编写 excel。

我推荐xlsxwriter,但也有其他选择

【讨论】:

  • 对不起,我忘了在帖子中添加我打算在 Excel 表中添加复选框的内容。经过大量的谷歌搜索,我意识到这是不可能的,除非通过 pywin32 或 comtypes 库。还有其他选择吗??
  • 值得查看文档。该软件包非常全面。我唯一需要但没有找到的是数据透视表。
  • 我刚刚下载了整个包并浏览了 doc 文件,但没有任何关于复选框或任何其他 ole 对象的内容......只有图表和文本框......如果你偶然发现了任何库这样做,请让我知道....无论如何,谢谢:)
【解决方案2】:

这是一个疯狂的猜测,但您是否将 Jenkins 作为 Windows 服务运行?如果是,则尝试通过命令行运行它并尝试。作为服务运行的 Jenkins 在启动 Windows/浏览器时确实存在问题。

【讨论】:

  • 是的,实际上我将它作为服务运行!我将尝试通过命令行运行它,希望这不会对作为服务运行它产生任何限制。
猜你喜欢
  • 1970-01-01
  • 2019-01-08
  • 1970-01-01
  • 2018-11-06
  • 1970-01-01
  • 2013-01-21
  • 1970-01-01
  • 1970-01-01
  • 2020-06-09
相关资源
最近更新 更多