当前位置: 首页 > news >正文

国产化Excel开发组件Spire.XLS教程:使用 Python 设置 Excel 格式,从基础到专业应用

在处理电子表格时,数据本身固然重要,但可读性同样关键。一个拥有优秀格式设置的 Excel 文件不仅更易于分析,还能方便展示和分享。与在 Excel 中手动调整样式相比,使用 Python 进行 Excel 格式设置 并自动化操作,能够帮助我们节省宝贵的时间。

本文将演示如何借助 Spire.XLS for Python 通过 Python 设置 Excel 样式。我们会讲解基础样式、进阶格式设

和实际应用场景,同时介绍实现 Python 进行 Excel 格式设置的核心类和属性。

Spire.XLS for Python试用下载

为什么使用 Python 设置 Excel 表格格式

手动格式化 Excel 十分耗时,尤其是在处理大数据或动态生成报表时。借助 Python Excel 格式设置,你可以:

  • 在多个工作簿中统一应用一致的样式。
  • 自动完成字体、边框、颜色等重复性任务。
  • 通过代码生成带格式的报表,用于商业或科研。
  • 提高准确性和美观度,同时节省大量时间。

利用 Python,你可以快速编写脚本,为 Excel 表格应用专业的样式。接下来我们先来配置环境。

环境和项目搭建

学习本教程前,需要先 安装 Spire.XLS for Python,这是一个专门用于处理 Excel 文件的库,支持创建、读取、修改和格式化 Excel 文档。

安装 Spire.XLS for Python

通过 pip 安装:

pip install Spire.XLS

在 Python 脚本中导入:

from spire.xls import *

创建或加载 Excel 工作簿

在开始格式化之前,需要准备一个工作簿。

新建工作簿:

workbook = Workbook()
sheet = workbook.Worksheets[0]

或加载已有文件:

workbook = Workbook()
workbook.LoadFromFile("输入文件.xlsx")
sheet = workbook.Worksheets[0]

格式化完成后,保存结果:

workbook.SaveToFile("output/格式设置结果.xlsx", ExcelVersion.Version2016)

有了工作簿,我们就可以进入实际的格式设置示例了。

用 Python 设置 Excel 表格基础格式

在学习高级操作前,先掌握 Excel 的基础格式化功能非常重要。这些基本技巧(字体、对齐、边框、背景颜色、列宽和行高调整)是创建清晰、专业电子表格的基石。熟练后可以组合并扩展这些方法,构建更复杂的样式。

1. 设置字体

修改字体是 Excel 样式中最常见的任务。在 Spire.XLS for Python 中,可以通过 CellRange.Style.Font 对象来控制字体名称、大小、颜色以及加粗、斜体、下划线等效果。

cell = sheet.Range[2, 2]
cell.Text = "Python Excel 格式设置示例"cell.Style.Font.FontName = "微软雅黑"
cell.Style.Font.Size = 14
cell.Style.Font.Color = Color.get_Blue()
cell.Style.Font.IsBold = True

这样即可直接修改单元格文字的显示效果。

2. 对齐与自动换行

通过 HorizontalAlignment 和 VerticalAlignment 属性可以设置单元格的水平和垂直对齐方式,WrapText 属性则能让长文本自动换行。

cell = sheet.Range[4, 2]
cell.Text = "这是一个居中并自动换行的示例文本"cell.Style.HorizontalAlignment = HorizontalAlignType.Center
cell.Style.VerticalAlignment = VerticalAlignType.Center
cell.Style.WrapText = True

这样可以保持文本居中且易于阅读。

3. 添加边框

单元格边框可通过 Borders 集合来设置,可以分别指定边框样式和颜色。

cell = sheet.Range[6, 2]
cell.Text = "边框示例"cell.Style.Borders[BordersLineType.EdgeBottom].LineStyle = LineStyleType.Thin
cell.Style.Borders[BordersLineType.EdgeBottom].Color = Color.get_Black()

这样会在单元格下方添加一条黑色细线。

4. 设置背景颜色

通过 Style.Color 可以为单元格添加背景色,常用于突出标题或重点数据。

cell = sheet.Range[8, 2]
cell.Text = "高亮单元格"
cell.Style.Color = Color.get_Yellow()

这样单元格会显示为黄色背景。

5. 调整列宽与行高

调整列宽和行高可以避免文字重叠或留有过多空白。

# 设置指定列宽
sheet.Columns[1].ColumnWidth = 20
# 设置指定行高
sheet.Rows[7].RowHeight = 20

此外,还可以自动调整行列宽度以适应内容:

  • 使用 Worksheet.AutoFitColumn(columnIndex) 或 Worksheet.AutoFitRow(rowIndex) 调整单列或单行。
  • 使用 CellRange.AutoFitColumns() 或 CellRange.AutoFitRows() 调整选定区域内的所有列或行。

这样可确保表格数据整齐且易读。

基础格式设置效果预览

下图展示了字体、对齐、边框、背景色、列宽和行高调整的效果:

此外,还可以自定义数字、日期、货币等数据格式。

Python 中进行 Excel 扩展格式设置

除了逐个单元格设置,还可以通过单元格区域和可复用样式来实现更高效的格式化。主要涉及 CellRange 对象(用于合并、调整区域大小)和 Workbook.Styles 集合(用于创建自定义样式)。

1. 合并单元格

常用于生成报表标题或跨列的分区标题。

range = sheet.Range[2, 2, 2, 4]
range.Merge()
range.Text = "季度销售报表"
range.Style.HorizontalAlignment = HorizontalAlignType.Center
range.RowHeight = 30

这样可以将 B2:D2 合并为一个单元格并设置居中。

2. 应用内置样式

Excel 自带一些预设样式,可以快速应用。

range.BuiltInStyle = BuiltInStyles.Heading1

这样会应用 标题 1 样式,无需手动设置字体和边框。

3. 创建并应用自定义样式

当需要在多个单元格或表格中使用同一格式时,可以创建自定义样式。

# 创建自定义样式
custom_style = workbook.Styles.Add("自定义样式")
custom_style.Font.FontName = "宋体"
custom_style.Font.Size = 12
custom_style.Font.Color = Color.get_DarkGreen()
custom_style.Borders[BordersLineType.EdgeTop].LineStyle = LineStyleType.MediumDashDot# 应用样式
cell = sheet.Range[4, 2]
cell.Text = "应用了自定义样式"
cell.Style = custom_style

这样能提升格式管理效率,尤其在处理大数据时。

扩展格式设置效果预览

下图展示了合并单元格、内置样式和自定义样式的效果:

Python 设置 Excel 样式的关键 API

学习了基础和高级示例后,我们再回顾一下 核心类、属性和方法。理解这些内容有助于写出更灵活、可维护的脚本。

下表总结了 Python 格式化 Excel 时最常用的 API,可作为速查表:

掌握这些 API 后,就能以结构化和灵活的方式完成常见格式化任务,确保报表专业美观且易于维护。

实例应用:使用 Python 创建 Excel 报表

接下来,我们结合所学来生成一个 年度销售报表,包含结构化数据、地区分类和高级格式,让报表清晰、专业。

from spire.xls import *workbook = Workbook()
sheet = workbook.Worksheets[0]
sheet.Name = "销售报表"# 报表标题
title = sheet.Range[1, 1, 1, 7]
title.Merge()
title.Text = "2024 年度销售报表"
title.Style.Font.IsBold = True
title.Style.Font.Size = 16
title.Style.HorizontalAlignment = HorizontalAlignType.Center
title.Style.Color = Color.get_LightGray()
title.RowHeight = 30# 数据
data = [["产品", "地区", "第一季度", "第二季度", "第三季度", "第四季度", "合计"],["笔记本", "北方", 1200, 1500, 1300, 1600, 5600],["笔记本", "南方", 1000, 1200, 1100, 1300, 4600],["平板", "北方", 800, 950, 1000, 1200, 3950],["平板", "南方", 700, 850, 900, 1000, 3450],["手机", "北方", 2000, 2200, 2100, 2500, 8800],["手机", "南方", 1800, 1900, 2000, 2200, 7900],["配件", "全部", 600, 750, 720, 900, 2970],["", "", "", "", "", "总计", 39370]
]for r in range(len(data)):for c in range(len(data[r])):sheet.Range[r+2, c+1].Text = str(data[r][c])# 表头格式
header = sheet.Range[2, 1, 2, 7]
header.Style.Font.IsBold = True
header.Style.Color = Color.get_LightBlue()
header.Style.HorizontalAlignment = HorizontalAlignType.Center
header.Style.Borders[BordersLineType.EdgeBottom].LineStyle = LineStyleType.Thin# 数值列设置为货币
for row in range(3, 11):for col in range(3, 8):cell = sheet.Range[row, col]if cell.Text.isdigit():cell.NumberValue = float(cell.Text)cell.NumberFormat = "¥#,##0"# 高亮总计
grand_total = sheet.Range[10, 7]
grand_total.Style.Color = Color.get_LightYellow()
grand_total.Style.Font.IsBold = True# 冻结首行和前两列
sheet.FreezePanes(2, 3)# 设置字体名以便自动对齐
sheet.AllocatedRange.Style.Font.FontName = "微软雅黑"# 自动调整列宽
sheet.AllocatedRange.AutoFitColumns()workbook.SaveToFile("output/年度销售报表.xlsx", ExcelVersion.Version2016)

此脚本整合了合并标题、加粗表头、货币格式、总计高亮、冻结窗格等多种技巧,使报表既清晰又美观,特别适合商业和财务数据展示。

最终生成的报表效果如下:

结论

使用 Python 格式化 Excel 是一种高效的报表自动化方式,既能节省时间,又能保证数据展示的专业性。通过结合基础样式和高级技巧(如自定义样式和列宽调整),你可以轻松创建清晰、统一的电子表格。

无论是财务报表、科研数据还是商业分析,Python Excel 格式设置 都能帮助你高效完成任务。合理利用样式和属性,让表格不仅包含数据,还能直观传达信息。

常见问题解答

Q1: 可以用 Python 格式化 Excel 吗?

可以。Python 提供了库来设置字体、颜色、边框、对齐方式、条件格式等。

Q2: Python 中如何进行格式化?

可以使用 Spire.XLS for Python 库,通过代码修改字体、对齐、列宽、合并单元格、应用样式等。

Q3: Python 能编辑 Excel 吗?

可以。Python 不仅能格式化,还能创建、读取、修改和保存 Excel 文件,非常适合动态报表和数据自动化。

Q4: 如何自动化重复的 Excel 样式设置?

可以定义自定义样式或封装函数,将统一的格式应用到多个工作簿和工作表中,从而提高效率并保持一致性。


文章转载自:

http://sHtRsLd9.dsxgc.cn
http://9taaGzhW.dsxgc.cn
http://e7wXOO3v.dsxgc.cn
http://HM6Bjkg3.dsxgc.cn
http://0IHSTihv.dsxgc.cn
http://2xTJGk74.dsxgc.cn
http://4QIBuo5i.dsxgc.cn
http://Jf8UsdIP.dsxgc.cn
http://BrnDZLrO.dsxgc.cn
http://TvsvCSmb.dsxgc.cn
http://rW2zUfl7.dsxgc.cn
http://0XH97twt.dsxgc.cn
http://6eNCKhJx.dsxgc.cn
http://CsraXyC7.dsxgc.cn
http://UHBd9x7T.dsxgc.cn
http://t9encA8I.dsxgc.cn
http://IS7rn86O.dsxgc.cn
http://PVYmj8LU.dsxgc.cn
http://HuEdgMwv.dsxgc.cn
http://EWuamkfJ.dsxgc.cn
http://186OvrjD.dsxgc.cn
http://tZo8NGkg.dsxgc.cn
http://WGMz840W.dsxgc.cn
http://HVAhj5ju.dsxgc.cn
http://zu694qPy.dsxgc.cn
http://1YvRAQPb.dsxgc.cn
http://QTKQODDb.dsxgc.cn
http://34964Igi.dsxgc.cn
http://QDP5aQzx.dsxgc.cn
http://7poBAEMH.dsxgc.cn
http://www.dtcms.com/a/388198.html

相关文章:

  • Parasoft以高标准测试助力AEW提升汽车软件质量
  • el-date-picker时间选择器限制时间跨度为3天
  • 35.Socket网络编程(UDP)(下)
  • 【前沿技术Trip Three】正则表达式
  • 多平台数据交换解耦方案选型
  • ​​[硬件电路-239]:从电阻器的高频等效模型,看高频信号的敏感性,电路的性能受到频率的影响较大
  • Java 中的 23 种设计模式详解
  • 《2025年AI产业发展十大趋势报告》六十二
  • 【字节跳动】LLM大模型算法面试题:大模型 LLM的架构介绍?
  • 【C++】类成员访问控制
  • 彩笔运维勇闯机器学习--梯度下降法
  • 正点原子zynq_FPGA学习笔记-vivado安装
  • 基于yolov8/yolo11的视觉识别算法使用和详解
  • 2025年数据科学与大数据技术和统计学有什么区别?
  • STM32H743-ARM例程2-GPIO点亮LED
  • 每天五分钟深度学习:深层神经网络的前向传播算法和反向传播算法
  • 【LeetCode】41. 缺失的第一个正数
  • Linux系统指令之 —— ip route route
  • 嵌入式硬件笔记:三种滤波电路的对比
  • webrtc弱网-InterArrivalDelta类源码分析与算法原理
  • 第6章:计算机内存实战
  • 模型压缩与量化实战:将BERT模型缩小4倍并加速推理
  • RS485 与 CAN 通讯:选哪个更合适?
  • 腾讯微保社招笔试
  • centos系统安装mysql8
  • Go语言垃圾回收器深入解析
  • 大模型的领域知识注入的四种路径
  • 寻找高速传输新选择:当传统方案不再满足现代企业需求
  • (CV方向)视频理解前沿:基于TimeSformer的时空注意力模型实战
  • hot100--简单题(3)