将python3与openpyxl一起使用。是否可以格式化(纸张)打印的工作表?即我需要更改excel默认值以打印双面,横向,打印整个工作簿等等,这样我就可以打开excel文件并点击打印。
简单的是或否答案没问题,我看到工作表类下有一些方法称为例如'A3'或'Executive'理论上应该与纸张尺寸相对应,但它们似乎是整数的字符串值?
提前感谢您的帮助。
答案 0 :(得分:5)
是,这可能。
这是一个非常有效的问题,而且很准确,无法回答。
在文档中,有这一部分:
https://openpyxl.readthedocs.io/en/stable/_modules/openpyxl/worksheet/page.html#PrintPageSetup
以编程方式定义数据:
您可以通过扩展类PrintPageSetup来自定义XLSX,并传递您的值,如:
wb = openpyxl.Workbook()
ws = wb.get_active_sheet()
ws.title = "Your Tab Title"
# Printer Settings
ws.page_setup.orientation = ws.ORIENTATION_LANDSCAPE
ws.page_setup.paperSize = ws.PAPERSIZE_A3
# Property settings
wsprops = ws.sheet_properties
wsprops.tabColor = "1072BA"
wsprops.filterMode = False
wsprops.pageSetUpPr = PageSetupProperties(fitToPage=True, autoPageBreaks=False)
wsprops.outlinePr.summaryBelow = False
wsprops.outlinePr.applyStyles = True
将数据填入准备好的模板:
此外,如果您愿意,可以在Excel中准备文档,将其另存为模板,然后通过openpyxl打开并动态添加实际数据。
这也在文档中概述: https://openpyxl.readthedocs.io/en/stable/tutorial.html#loading-from-a-file
from openpyxl import load_workbook
wb2 = load_workbook('test.xlsx')
print wb2.get_sheet_names()
['Sheet2', 'New Title', 'Sheet1']
答案 1 :(得分:2)
这个问题确实太宽泛了。在Excel中有许多与打印相关的设置,但您应该查看文档:{{3}}