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应该可以工作。

值得注意的是,用于显示和打印的各种选项在文件内部有些违反直觉。