Python 如何设置 Excel 文件所有行/所有列/所有内容缩放到一页

2020-10-20 16:48:21 +08:00
 ZakaryTime

非专业程序开发人员,自己使用 Python 写一个批量打印的功能,想实现 Excel/WPS 表格内置的打印缩放功能,并没有查询到相关的内容,希望各位大神解答一下。

2077 次点击
所在节点    Python
5 条回复
raymanr
2020-10-20 16:51:54 +08:00
你可以使用 pywin32 这个库

然后手录一个打印缩放的宏,

接着把这个宏的 vba 代码片段翻成 python 代码

具体的代码肯定是没法根据你的提示就写出来让你 copy 的

但是给你个提示就是录制的 vba 片段几乎可以原封不动搬运到 python 里面,只有 vba 的枚举需要翻译为数字

pywin32 的用法你网上搜一下吧,几乎就是 vba 的翻版
renmu123
2020-10-20 17:12:54 +08:00
可以试试 openpyxl
ZakaryTime
2020-10-20 19:09:35 +08:00
@renmu123 看了下可以设置对齐方式、页眉页脚、打印标题、打印区域,但是还是没看到设置缩放的方式
ZakaryTime
2020-10-20 19:09:59 +08:00
@raymanr 好的,我去看看如何实现。
renmu123
2020-10-20 20:16:04 +08:00
@ZakaryTime #4

from openpyxl import load_workbook
from openpyxl.worksheet.page import PrintPageSetup
wb = load_workbook("test.xlsx")
ws = wb.active
ws.page_setup = PrintPageSetup(worksheet=ws, fitToHeight=2, fitToWidth=1, scale=10)
wb.save("new.xlsx")


excel 实现打印缩放主要有两种方法:
1. 在页面设置中设置缩放比例
2. 在页面设置中调整页宽和页高

在 openpyxl 可以实现,文档应该是没写出来,可以参考上面我的代码,我将缩放设置成了 10%(页宽和页高也分别进行了设置,但是我没找到怎么勾选这个设置 23333 )

ps: 欢迎关注我翻译的 openpyxl 文档: https://github.com/renmu123/openpyxl-chinese-docs (虽然好久没更新了)

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/716785

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX