openpyxl页面设置“适合”vs“调整为”
我试图将我的工作表设置为使用openpyxl自动适应一个页面上的所有列。 我已经接近这个方法是设置fitToWidth属性和fitToHeight属性。 到目前为止,我可以修改页面设置为fitToWidth值为1,fitToHeight值为0,但是当我打开电子表格时,它仍然在“调整到”select,而不是“适合”select,其中fitToWidth和fitToHeight值已被应用。 如何在页面设置中将该选项更改为“适合”而不是“调整为”?
我认为这需要是False的PageSetup.zoom属性,但我无法弄清楚如何用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"
谢谢!
以下为我工作:
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)
当然,如果你想把页面的高度放在一页上,并且不关心页面的宽度,你可以replace它
ws.page_setup.fitToHeight = False
同
ws.page_setup.fitToWidth = False
如果您希望整个工作表在单个页面上,则完全删除“ws.page_setup …”行。
如果你想要的高度/宽度,例如,3页,使用:
ws.page_setup.fitToWidth = 3
但是,我努力的关键要素是在设置fitToHeight和/或fitToWidth属性之前,必须设置ws.sheet_properties.pageSetUpPr.fitToPage = True。
您不需要明确设置比例百分比。 这将撤消这里的设置。
openpyxl实现的文件规范可能会有所不同,从任何特定的SDK提供。 这是指scale
。 参见ECMA 476规范的§18.3.1.64。 例如。 ws.page_setup.scale = 400
应该可以工作。
值得注意的是,用于显示和打印的各种选项在文件内部有些违反直觉。