使用Python设置Excel工作表的各项页面属性

 更新时间:2026年04月14日 09:01:37   作者:大丸子  
在企业日常办公中,Excel 报表的打印输出是一项常见且重要的工作,通过 Python 编程实现 Excel 页面设置的自动化,可以确保所有报表具有统一的打印格式,大幅提升工作效率,本文将使用 Free Spire.XLS for Python 展示如何通过代码设置 Excel 工作表的各项页面属性

在企业日常办公中,Excel 报表的打印输出是一项常见且重要的工作。无论是财务报表、销售数据表还是项目进度表,都需要在打印前进行页面设置,包括调整纸张大小、页边距、打印方向、打印区域等。手动调整这些设置不仅耗时,而且在处理大量报表时容易出现遗漏或设置不一致的问题。通过 Python 编程实现 Excel 页面设置的自动化,可以确保所有报表具有统一的打印格式,大幅提升工作效率。

本文将使用 Free Spire.XLS for Python 展示如何通过代码设置 Excel 工作表的各项页面属性,包括纸张大小、页边距、打印方向、打印区域、打印标题、缩放比例等,帮助你实现报表打印布局的自动化配置。

1. 环境准备与库安装

首先需要安装 Free Spire.XLS for Python:

pip install spire.xls.free

安装完成后,我们可以开始创建 Excel 工作簿并进行页面设置。下面是一个创建 Excel 文件并设置基本页面属性的简单示例:

from spire.xls import Workbook, PaperSizeType, PageOrientationType
from spire.xls.common import *
# 创建一个新的工作簿
workbook = Workbook()
sheet = workbook.Worksheets[0]
sheet.Name = "销售报表"
# 获取 PageSetup 对象
pageSetup = sheet.PageSetup
# 设置纸张大小为 A4
pageSetup.PaperSize = PaperSizeType.PaperA4
# 设置页面方向为横向
pageSetup.Orientation = PageOrientationType.Landscape
# 保存文件
workbook.SaveToFile("SalesReport.xlsx", ExcelVersion.Version2013)
workbook.Dispose()
print("Excel 文件已创建并设置页面属性:SalesReport.xlsx")

说明
PageSetup 对象是 Excel 工作表页面设置的核心对象,通过它可以访问和设置所有与打印相关的属性。这里我们设置了 A4 纸张和横向打印方向,这是报表打印中最常用的配置。

2. 设置主要页面属性

在实际工作中,报表的页面设置通常包括纸张大小、打印方向、页边距、打印区域、打印标题等核心属性。下面通过一个综合示例展示如何设置这些主要属性。

from spire.xls import *
from spire.xls.common import *
# 创建工作簿
workbook = Workbook()
sheet = workbook.Worksheets[0]
sheet.Name = "季度销售报表"
# 添加示例数据
headers = ["地区", "产品", "销售额(万元)", "利润率"]
for col, header in enumerate(headers, start=1):
    sheet.Range[1, col].Text = header
sales_data = [
    ["华东", "笔记本电脑", 120, "15%"],
    ["华东", "平板电脑", 85, "12%"],
    ["华北", "笔记本电脑", 95, "13%"],
    ["华北", "平板电脑", 70, "10%"],
    ["华南", "笔记本电脑", 110, "14%"],
    ["华南", "平板电脑", 90, "11%"],
]
for row, data in enumerate(sales_data, start=2):
    for col, value in enumerate(data, start=1):
        sheet.Range[row, col].Value = str(value)
# 获取 PageSetup 对象
pageSetup = sheet.PageSetup
# 1. 设置纸张大小为 A4
pageSetup.PaperSize = PaperSizeType.PaperA4
# 2. 设置打印方向为横向(适合宽表格)
pageSetup.Orientation = PageOrientationType.Landscape
# 3. 设置页边距(单位:英寸)
pageSetup.TopMargin = 1.5       # 上边距
pageSetup.BottomMargin = 1.5    # 下边距
pageSetup.LeftMargin = 1.0      # 左边距
pageSetup.RightMargin = 1.0     # 右边距
# 4. 设置页眉页脚边距
pageSetup.HeaderMarginInch = 0.5  # 页眉边距
pageSetup.FooterMarginInch = 0.5  # 页脚边距
# 5. 设置打印区域(仅打印前4行数据)
pageSetup.PrintArea = "A1:D5"
# 6. 设置打印标题行(第1行作为标题行,在每页重复)
pageSetup.PrintTitleRows = "$1:$1"
# 7. 设置页面居中
pageSetup.CenterHorizontally = True  # 水平居中
pageSetup.CenterVertically = True    # 垂直居中
# 8. 设置缩放:将内容缩放到一页宽和一页高
pageSetup.FitToPagesWide = 1
pageSetup.FitToPagesTall = 1
# 9. 设置页眉页脚
# 设置左页眉:包含公司名称,字体为 微软雅黑,字号为 12
pageSetup.LeftHeader = "&\"微软雅黑\"&12 季度销售报表"
# 设置中页脚:包含页码信息
pageSetup.CenterFooter = "第 &P 页,共 &N 页"
# 设置右页脚:包含打印日期
pageSetup.RightFooter = "打印日期:&D"
# 自动调整列宽
sheet.Range.AutoFitColumns()
workbook.SaveToFile("SalesReport_PageSetup.xlsx", ExcelVersion.Version2013)
workbook.Dispose()
print("主要页面属性设置完成:SalesReport_PageSetup.xlsx")

工作表预览:

说明

  • 纸张大小与方向PaperSize 设置纸张规格(A3、A4、A5、Letter 等),Orientation 设置打印方向(横向或纵向)。对于包含多列的宽表格,横向打印可以避免内容被截断。
  • 页边距:通过 TopMarginBottomMarginLeftMarginRightMargin 精确控制内容区域与纸张边缘的距离,单位为英寸。HeaderMarginInch 和 FooterMarginInch 分别控制页眉和页脚与内容区域的距离。
  • 打印区域:通过 PrintArea 指定需要打印的单元格范围,格式为标准的 Excel 区域引用,如 "A1:D5" 表示从 A1 到 D5 的矩形区域。
  • 打印标题PrintTitleRows 用于设置在每页重复打印的行,格式为 "$行号:$行号",例如 "$1:$1" 表示第1行。这对于跨页的长表格特别有用,确保每页都有表头信息。
  • 页面居中与缩放CenterHorizontally 和 CenterVertically 分别控制内容在页面上的水平和垂直居中。FitToPagesWide 和 FitToPagesTall 用于设置打印内容缩放到指定的页数,例如都设置为 1 表示将所有内容缩放到一页中打印。

页眉页脚:通过 LeftHeaderCenterHeaderRightHeader 设置页眉的左、中、右部分,通过 LeftFooterCenterFooterRightFooter 设置页脚的左、中、右部分。页眉页脚支持特殊代码:

  • &P:当前页码
  • &N:总页数
  • &D:当前日期
  • &T:当前时间
  • &\"字体名称\"&字号:设置字体和字号
  • &B:加粗
  • &I:斜体

3. 设置其他打印选项

除了基本的页面设置,还可以配置网格线打印、行列标题打印、打印质量等高级选项。

from spire.xls import Workbook, PrintCommentType, PrintErrorsType
from spire.xls.common import *
workbook = Workbook()
sheet = workbook.Worksheets[0]
sheet.Name = "数据分析表"
# 添加示例数据
headers = ["指标", "数值", "单位"]
for col, header in enumerate(headers, start=1):
    sheet.Range[1, col].Text = header
data = [
    ["总销售额", 150000, "元"],
    ["平均订单额", 2500, "元"],
    ["客户数量", 1200, "人"],
    ["转化率", 0.15, "%"],
]
for row, row_data in enumerate(data, start=2):
    for col, value in enumerate(row_data, start=1):
        if isinstance(value, str):
            sheet.Range[row, col].Value = value
        else:
            sheet.Range[row, col].NumberValue = value
# 获取 PageSetup 对象
pageSetup = sheet.PageSetup
# 设置打印网格线
pageSetup.IsPrintGridlines = True
# 设置打印行列标题
pageSetup.IsPrintHeadings = True
# 设置黑白打印模式
pageSetup.BlackAndWhite = True
# 设置打印质量(草稿模式)
pageSetup.Draft = True
# 设置打印批注方式
pageSetup.PrintComments = PrintCommentType.InPlace
# 设置错误值打印方式
pageSetup.PrintErrors = PrintErrorsType.NA
# 自动调整列宽
sheet.Range.AutoFitColumns()
workbook.SaveToFile("DataAnalysis_PrintOptions.xlsx", ExcelVersion.Version2013)
workbook.Dispose()
print("其他打印选项设置完成:DataAnalysis_PrintOptions.xlsx")

工作表预览:

说明

  • IsPrintGridlines:是否打印网格线
  • IsPrintHeadings:是否打印行列标题
  • BlackAndWhite:是否以黑白模式打印
  • Draft:是否以草稿质量打印(加快打印速度)
  • PrintComments:批注打印方式(InPlace 表示在原位置打印)
  • PrintErrors:错误值打印方式(NA 表示打印为 N/A)

4. 关键类与方法解析

在前面的章节中,我们展示了如何使用 Free Spire.XLS for Python 设置 Excel 工作表的各种页面属性。从技术实现角度来看,页面设置的核心流程可以总结为以下几个关键步骤:

Python Excel 页面设置步骤总结

  • 创建或加载工作簿使用 Workbook() 创建新工作簿,或使用 LoadFromFile() 加载现有文件。
  • 获取 PageSetup 对象通过 sheet.PageSetup 获取工作表的页面设置对象,这是所有页面属性配置的入口。
  • 设置页面基本属性包括纸张大小(PaperSize)、打印方向(Orientation)、页边距(TopMarginBottomMarginLeftMarginRightMargin)等。
  • 配置打印区域与标题设置打印区域(PrintArea)、打印标题行(PrintTitleRows)、打印标题列(PrintTitleColumns)。
  • 设置页面布局选项配置页面居中(CenterHorizontallyCenterVertically)、缩放比例(FitToPagesWideFitToPagesTall)。
  • 配置高级打印选项设置网格线打印、行列标题打印、黑白模式、打印质量等。
  • 保存文件使用 SaveToFile() 保存设置后的 Excel 文件。

关键类、方法与属性

类 / 方法 / 属性说明
WorkbookExcel 工作簿对象,支持创建、加载和保存文件
Workbook.LoadFromFile()从本地文件加载 Excel 工作簿
Workbook.SaveToFile()保存 Excel 文件到指定路径
Worksheet表示单个工作表,是操作数据和页面设置的主体对象
sheet.PageSetup获取工作表的页面设置对象
pageSetup.PaperSize设置纸张大小(A3、A4、A5、Letter 等)
pageSetup.Orientation设置打印方向(横向或纵向)
pageSetup.TopMargin设置上边距(单位:英寸)
pageSetup.BottomMargin设置下边距(单位:英寸)
pageSetup.LeftMargin设置左边距(单位:英寸)
pageSetup.RightMargin设置右边距(单位:英寸)
pageSetup.HeaderMarginInch设置页眉边距(单位:英寸)
pageSetup.FooterMarginInch设置页脚边距(单位:英寸)
pageSetup.PrintArea设置打印区域(如 "A1:D10")
pageSetup.PrintTitleRows设置打印标题行(如 "$1:$1")
pageSetup.PrintTitleColumns设置打印标题列(如 "$A:$A")
pageSetup.CenterHorizontally设置页面水平居中
pageSetup.CenterVertically设置页面垂直居中
pageSetup.FitToPagesWide设置缩放到的页宽数
pageSetup.FitToPagesTall设置缩放到的页高数
pageSetup.LeftHeader设置左页眉内容
pageSetup.CenterHeader设置中页眉内容
pageSetup.RightHeader设置右页眉内容
pageSetup.LeftFooter设置左页脚内容
pageSetup.CenterFooter设置中页脚内容
pageSetup.RightFooter设置右页脚内容
pageSetup.IsPrintGridlines是否打印网格线
pageSetup.IsPrintHeadings是否打印行列标题
pageSetup.BlackAndWhite是否黑白打印
pageSetup.Draft是否草稿质量打印
pageSetup.PrintComments批注打印方式
pageSetup.PrintErrors错误值打印方式

通过理解上述关键类、方法和属性,你可以灵活地配置 Excel 工作表的各种页面设置,并根据实际需求进行精细定制。掌握这些技术细节,能让你在实际项目中快速生成格式统一、打印效果专业的 Excel 报表,同时保持代码简洁和可维护性。

总结

本文以实际业务场景为例,展示了如何使用 Free Spire.XLS for Python 设置 Excel 工作表的各项页面属性,包括纸张大小、页边距、打印方向、打印区域、打印标题、页面居中、缩放比例、页眉页脚以及高级打印选项等。通过编程方式配置页面设置,不仅避免了手动操作的繁琐和易错问题,还能确保所有报表具有统一的打印格式,特别适合批量处理和自动化报表生成场景。

掌握这一技能后,你可以将报表的页面设置完全自动化,从而节省时间,提高效率,并确保打印输出的专业性和一致性。结合 Free Spire.XLS 的其他功能,如数据写入、格式设置、图表创建等,可以进一步打造智能化的 Excel 自动化工作流,让企业的报表处理工作更加高效和规范。

以上就是使用Python设置Excel工作表的各项页面属性的详细内容,更多关于Python设置Excel表页面属性的资料请关注脚本之家其它相关文章!

相关文章

  • python创建文件备份的脚本

    python创建文件备份的脚本

    这篇文章主要介绍了python创建文件备份的脚本,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-09-09
  • int在python中的含义以及用法

    int在python中的含义以及用法

    在本篇文章中小编给大家整理了关于int在python中的含义以及用法,对此有兴趣的朋友们可以跟着学习下。
    2019-06-06
  • python实现简易淘宝购物

    python实现简易淘宝购物

    这篇文章主要为大家详细介绍了python实现简易淘宝购物,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-11-11
  • Python列表元素删除和remove()方法详解

    Python列表元素删除和remove()方法详解

    这篇文章主要给大家介绍了关于Python列表元素删除和remove()方法的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-01-01
  • 使用pth文件添加Python环境变量方式

    使用pth文件添加Python环境变量方式

    这篇文章主要介绍了使用pth文件添加Python环境变量方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-05-05
  • Python边遍历边删除列表元素的几种方法

    Python边遍历边删除列表元素的几种方法

    在 Python 中,边遍历边删除列表元素通常是一个不推荐的操作,因为它会改变列表的大小,可能会导致一些意料之外的行为,例如,元素被删除后,列表的索引会发生变化,可能导致漏掉某些元素或者遍历到错误的位置,所以本文介绍了Python边遍历边删除列表元素的几种方法
    2024-12-12
  • python 实现多维数组(array)排序

    python 实现多维数组(array)排序

    今天小编就为大家分享一篇python 实现多维数组(array)排序,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-02-02
  • 基于OpenCV的仿射变换实现方法

    基于OpenCV的仿射变换实现方法

    这篇文章主要给大家介绍了关于基于OpenCV的仿射变换实现方法,仿射变换相当于将二维平面上的每个坐标点与一个2x3的矩阵相乘,得到新的坐标,而透视变换则是与3x3的矩阵相乘,需要的朋友可以参考下
    2024-01-01
  • python构建深度神经网络(续)

    python构建深度神经网络(续)

    这篇文章主要详细介绍了python构建深度神经网络DNN,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-03-03
  • Python 计算机视觉编程进阶之OpenCV 进行霍夫变换

    Python 计算机视觉编程进阶之OpenCV 进行霍夫变换

    霍夫变换(Hough)是一个非常重要的检测间断点边界形状的方法。它通过将图像坐标空间变换到参数空间,来实现直线与曲线的拟合,通过本篇文章我们来详细了解它
    2021-11-11

最新评论