G R*_*ell 4 python excel python-2.7 openpyxl
我正在尝试将我的工作表设置为使用openpyxl自动适应一个页面上的所有列.我接近这个的方法是设置fitToWidth属性和fitToHeight属性.到目前为止,我可以修改页面设置,使fitToWidth值为1,fitToHeight值为0,但是当我打开电子表格时,它仍处于"调整到"选项而不是"适合"选项,其中fitToWidth和已应用fitToHeight值.如何在页面设置中将该选项更改为"适合"而不是"调整到"?
我认为PageSetup.zoom属性需要为False,但我无法弄清楚如何使用openpyxl.这是关于它的MSDN文章:https://msdn.microsoft.com/en-us/library/office/ff197028.aspx
到目前为止,这是我的代码:
from openpyxl import load_workbook
wb = load_workbook('test.xlsx')
ws.page_setup.orientation = ws.ORIENTATION_LANDSCAPE
ws.page_setup.fitToWidth = 1
ws.page_setup.fitToHeight = 0
ws.sheet_view.view = "pageLayout"
Run Code Online (Sandbox Code Playgroud)
谢谢!
以下适用于我:
import openpyxl, os
f = r'test.xlsx'
wb = openpyxl.load_workbook(f)
ws = wb.active
ws.sheet_properties.pageSetUpPr.fitToPage = True
ws.page_setup.fitToHeight = False
wb.save(f)
Run Code Online (Sandbox Code Playgroud)
当然,如果您想将高度调整到一个页面并且不关心页面宽度,则可以替换
ws.page_setup.fitToHeight = False
Run Code Online (Sandbox Code Playgroud)
同
ws.page_setup.fitToWidth = False
Run Code Online (Sandbox Code Playgroud)
如果您希望将整个工作表放在一个页面上,请完全删除"ws.page_setup ..."行.
如果您希望高度/宽度适合,例如3页,请使用:
ws.page_setup.fitToWidth = 3
Run Code Online (Sandbox Code Playgroud)
但是,我努力的关键因素是你必须在设置fitToHeight和/或fitToWidth属性之前设置ws.sheet_properties.pageSetUpPr.fitToPage = True.
您无需明确设置比例百分比.这将取消此处的设置.
openpyxl 实现的文件规范可能与任何特定 SDK 提供的不同。这是指scale. 请参阅 ECMA 476 规范的 \xc2\xa7 18.3.1.64。例如。ws.page_setup.scale = 400应该管用。
值得注意的是,用于显示和打印的各种选项在文件中的分布有些违反直觉。
\n