LOGO 首页 OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 技术文档 其他文档  
 
网站管理员

Python 实现 Excel 页面布局与打印设置自动化

zhenglin
2026年8月3日 9:34 本文热度 162

在实际工作中,Excel 文件经常需要打印输出,例如报表、清单、发票等。然而,如果页面布局设置不当,打印结果往往会出现内容被截断、边距不均匀、标题行丢失等问题,影响文档的专业性和可读性。

通过 Python 自动化配置 Excel 的页面布局参数,可以在生成文件的同时完成打印设置,避免手动调整的繁琐操作。本文将介绍如何使用 Spire.XLS for Python 库设置页边距、纸张大小、页面方向、打印区域、打印标题行以及缩放打印等常用页面布局属性。


环境准备

安装所需的 Python 库:

pip install Spire.XLS

设置页边距

页边距决定了打印内容与纸张边缘之间的距离。合理的边距设置可以让打印内容更加美观、易读。

通过 PageSetup 对象的 TopMarginBottomMarginLeftMarginRightMargin 属性,可以分别设置上、下、左、右四个方向的边距,单位为英寸。

from spire.xls import *

from spire.xls.common import *


workbook = Workbook()

workbook.LoadFromFile("input.xlsx")


sheet = workbook.Worksheets[0]

pageSetup = sheet.PageSetup


# 设置页边距(单位:英寸)

pageSetup.TopMargin = 3

pageSetup.BottomMargin = 2

pageSetup.LeftMargin = 1

pageSetup.RightMargin = 1


workbook.SaveToFile("SetMargins.xlsx", ExcelVersion.Version2010)

workbook.Dispose()

上述代码将工作表的上边距设为 3 英寸,下边距设为 2 英寸,左右边距各设为 1 英寸。可以根据实际打印需求灵活调整各方向的数值。


设置页面方向

当数据列数较多时,横向(Landscape)布局通常比纵向(Portrait)更合适,能够避免内容超出纸张宽度。

通过 PageSetup.Orientation 属性可以切换页面方向:

from spire.xls import *

from spire.xls.common import *


workbook = Workbook()

workbook.LoadFromFile("input.xlsx")


sheet = workbook.Worksheets[0]


# 设置页面方向为横向

sheet.PageSetup.Orientation = PageOrientationType.Landscape


workbook.SaveToFile("SetOrientation.xlsx", ExcelVersion.Version2010)

workbook.Dispose()

PageOrientationType 枚举提供两个选项:Portrait(纵向)和 Landscape(横向)。默认情况下,Excel 使用纵向布局。



设置纸张大小

不同的打印场景可能需要不同的纸张尺寸。例如,日常办公文档通常使用 A4 纸,而大型报表可能需要 A3 纸。

通过 PageSetup.PaperSize 属性可以指定纸张大小:

from spire.xls import *

from spire.xls.common import *


workbook = Workbook()


sheet = workbook.Worksheets[0]


# 设置纸张大小为 A4

sheet.PageSetup.PaperSize = PaperSizeType.PaperA4


workbook.SaveToFile("SetPaperSize.xlsx", ExcelVersion.Version2013)

workbook.Dispose()

PaperSizeType 枚举支持多种常见纸张规格,包括 PaperA3PaperA4PaperA5PaperLetterPaperLegal 等,可以根据打印机支持的纸张类型进行选择。



设置打印区域

如果工作表中包含大量数据,但只需要打印其中一部分,可以通过设置打印区域来指定需要输出的单元格范围。

通过 PageSetup.PrintArea 属性,以单元格地址字符串的形式指定打印范围:

from spire.xls import *

from spire.xls.common import *


workbook = Workbook()

workbook.LoadFromFile("input.xlsx")


sheet = workbook.Worksheets[0]

pageSetup = sheet.PageSetup


# 指定打印区域为 A1 到 E5

pageSetup.PrintArea = "A1:E5"


workbook.SaveToFile("SetPrintArea.xlsx", ExcelVersion.Version2010)

workbook.Dispose()

设置打印区域后,Excel 在打印时只会输出指定范围内的内容,忽略范围之外的数据。这在处理大型数据表时非常实用。


设置打印标题行和标题列

当数据跨越多页打印时,表头信息往往只在第一页显示,后续页面缺少列标题,给阅读带来不便。通过设置打印标题行(Print Title Rows),可以让每一页都自动重复显示指定的行。

类似地,如果数据列数较多需要横向翻页,可以设置打印标题列(Print Title Columns),让每一页都重复显示指定的列。

from spire.xls import *

from spire.xls.common import *


workbook = Workbook()

workbook.LoadFromFile("input.xlsx")


sheet = workbook.Worksheets[0]

pageSetup = sheet.PageSetup


# 设置第 1 行和第 2 行为打印标题行(每页重复打印)

pageSetup.PrintTitleRows = "$1:$2"


# 设置 A 列和 B 列为打印标题列(每页重复打印)

pageSetup.PrintTitleColumns = "$A:$B"


workbook.SaveToFile("SetPrintTitles.xlsx", ExcelVersion.Version2010)

workbook.Dispose()

注意标题行和标题列的引用格式使用 $ 符号,例如 $1:$2 表示第 1 行到第 2 行,$A:$B 表示 A 列到 B 列。这种写法与 Excel 中的绝对引用格式一致。

设置缩放打印(适应页面)

当数据内容超出单页范围时,可以通过缩放设置让内容自动适应指定数量的页面。这种方式比手动调整缩放比例更为便捷。

通过 FitToPagesTallFitToPagesWide 属性控制内容在垂直和水平方向上适应的页数:

from spire.xls import *

from spire.xls.common import *


workbook = Workbook()

workbook.LoadFromFile("input.xlsx")


sheet = workbook.Worksheets[0]

pageSetup = sheet.PageSetup


# 将所有内容缩放到 1 页高、1 页宽

pageSetup.FitToPagesTall = 1

pageSetup.FitToPagesWide = 1


workbook.SaveToFile("FitToPage.xlsx", ExcelVersion.Version2010)

workbook.Dispose()

将两个属性都设为 1,表示将所有内容缩放至一页纸内打印。如果数据行数很多但列数较少,可以将 FitToPagesTall 设为更大的值或设为 0(表示不限制垂直方向页数),同时保持 FitToPagesWide 为 1,确保内容宽度不超出页面。



完整示例:综合配置页面布局

以下示例将上述各项设置整合在一起,对一个工作表同时进行页边距、页面方向、纸张大小、打印区域和打印标题行的配置:

from spire.xls import *

from spire.xls.common import *


workbook = Workbook()

workbook.LoadFromFile("input.xlsx")


sheet = workbook.Worksheets[0]

pageSetup = sheet.PageSetup


# 页边距

pageSetup.TopMargin = 2.5

pageSetup.BottomMargin = 2

pageSetup.LeftMargin = 1

pageSetup.RightMargin = 1


# 页面方向与纸张大小

pageSetup.Orientation = PageOrientationType.Landscape

pageSetup.PaperSize = PaperSizeType.PaperA4


# 打印区域

pageSetup.PrintArea = "A1:H50"


# 打印标题行(每页重复第 1 行)

pageSetup.PrintTitleRows = "$1:$1"


# 缩放适应页面

pageSetup.FitToPagesTall = 0

pageSetup.FitToPagesWide = 1


workbook.SaveToFile("FullPageSetup.xlsx", ExcelVersion.Version2010)

workbook.Dispose()

这段代码适用于一个典型的横向 A4 报表场景:设置了合理的边距,限定了打印范围,确保表头在每页重复出现,并让内容自动适应页面宽度。

总结

本文介绍了使用 Python 配置 Excel 页面布局的几种常用方法,包括页边距、页面方向、纸张大小、打印区域、打印标题行列以及缩放打印。这些设置在日常办公和自动化报表生成中都非常实用,可以帮助开发者在程序端完成打印参数的配置,减少人工干预。

除了上述功能外,Spire.XLS 还支持设置打印质量、首页页码、页眉页脚边距等更多页面属性,可以根据具体需求进一步探索。


阅读原文:点击这里

该文章在 2026/8/3 9:34:08 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2026 ClickSun All Rights Reserved  粤ICP备13012886号-1  粤公网安备44030602007207号