Python-Excel - win32com 具有定义的名称或 openpyxl 打印?
我一直在通过 Python 自动化一些大型 Excel 电子表格。我需要通过创建用于提供输出的特定 Excel 工具获得大量输入。我的电子表格已定义输入参数的名称(即 Area 而不是 C5)。我的输入存储在字典中,其中包含输入参数的键(区域是键)。我正在尝试将带有名称引用的输入传递给工具电子表格。我已经用 openpyxl 成功做到了这一点。然而,在每次迭代之后,我希望 python 将输出打印到 Pdf 中。不幸的是,我没有找到使用 openpyxl 的方法,只能使用 win32com 调度来实现该功能。
不幸的是,当我运行 openpyxl 和 win32com 的组合时,我丢失了一些格式(某些单元格混合了符号和字母,而 openpyxl 将所有单元格都转换为相关单元格中的符号)。
这里的问题是:
- 有没有办法通过openpyxl打印文件?
或者
- 是否可以将带有单元格名称的输入值传递到win32com(我只找到了带有单元格地址而不是单元格名称的选项),以便我废弃openpyxl?
非常感谢!
I have been automasing some big Excel spreadsheets through Python. I need to get a big input through a specific Excel tool created to provide an output. My spreadsheets have defined names for the input parameters (ie. Area insteead of C5). My input is stored in a dictionary with the keys of input parameters (Area is a key). I am trying to pass the input with name reference to the tool spreadsheet. I have managed to do that with openpyxl. However, after every itteration, I want python to print me the output to Pdf. Unfortunately, I didn't find a way with openpyxl and have resorted to putting win32com dispatch for that function.
Unfortunately when I run the combo of openpyxl and win32com , I lose some of the formating (someof the cells have a mixture of symbols and letters and openpyxl turns all to symbols in the relative cell).
The question here is:
- Is there a way to print the file via openpyxl?
or
- Is it possible to pass the input value with cell name into win32com (I have found only an option with cell address not cell name) so that I scrap the openpyxl?
Much appreciated!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您无法使用 openpyxl 打印为 PDF,只能根据 Openpyxl 文档更改打印设置。
但是,您可以使用 win32com 打印为 PDF,
其中 0 或 1 代表类型,因此 0 是 pdf;
如果工作表中的单元格 C5 定义了名称“Area”,并且希望在 win32com 中引用其值,则语法为:
You cannot print to PDF using openpyxl only change print settings per the Openpyxl Documentation.
However you can print to PDF using win32com
where 0 or 1 represent the type, so 0 is pdf;
If you have cell C5 in your sheet with defined name 'Area' and wish to reference its value in win32com the syntax would be;