V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
ZakaryTime
V2EX  ›  Python

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

  •  
  •   ZakaryTime · 2020-10-20 16:48:21 +08:00 · 2056 次点击
    这是一个创建于 1276 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    5 条回复    2020-10-20 20:16:04 +08:00
    raymanr
        1
    raymanr  
       2020-10-20 16:51:54 +08:00   ❤️ 1
    你可以使用 pywin32 这个库

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

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

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

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

    pywin32 的用法你网上搜一下吧,几乎就是 vba 的翻版
    renmu123
        2
    renmu123  
       2020-10-20 17:12:54 +08:00 via Android
    可以试试 openpyxl
    ZakaryTime
        3
    ZakaryTime  
    OP
       2020-10-20 19:09:35 +08:00
    @renmu123 看了下可以设置对齐方式、页眉页脚、打印标题、打印区域,但是还是没看到设置缩放的方式
    ZakaryTime
        4
    ZakaryTime  
    OP
       2020-10-20 19:09:59 +08:00
    @raymanr 好的,我去看看如何实现。
    renmu123
        5
    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 (虽然好久没更新了)
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5540 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 722ms · UTC 03:26 · PVG 11:26 · LAX 20:26 · JFK 23:26
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.