openpyxl格式的打印工作表?

时间:2016-11-17 00:00:31

标签: openpyxl

将python3与openpyxl一起使用。是否可以格式化(纸张)打印的工作表?即我需要更改excel默认值以打印双面,横向,打印整个工作簿等等,这样我就可以打开excel文件并点击打印。

简单的是或否答案没问题,我看到工作表类下有一些方法称为例如'A3'或'Executive'理论上应该与纸张尺寸相对应,但它们似乎是整数的字符串值?

提前感谢您的帮助。

2 个答案:

答案 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}}