Excel 单元格格式怎么设置、复制和删除?附 Python 代码

在整理 Excel 数据时,单元格中的内容只是其中一部分,字体、颜色、对齐方式、边框和数字格式等同样会影响表格的可读性。对于需要批量生成或处理 Excel 文件的场景,如果每次都手动调整这些格式,不仅效率较低,也不方便统一处理。本文将使用 Spire.XLS for Python 演示如何通过 Python 设置、复制和删除 Excel 单元格格式。

准备工作

Spire.XLS for Python 是一个用于处理 Excel 文档的 Python 库,可以在不依赖 Microsoft Excel 的情况下创建、读取、编辑和保存 Excel 文件。除了处理工作表中的数据外,它还支持对单元格格式、公式、图表、数据验证等内容进行操作,适合用于 Excel 文件的自动化处理。

如果需要在 Python 项目中使用 Spire.XLS,可以通过 pip 安装:

pip install Spire.XLS

安装完成后,需要在代码中导入相关模块:

from spire.xls import *
from spire.xls.common import *

下面我们以实际的 Excel 操作为例,分别介绍如何使用这个组件设置、复制和删除单元格格式。

使用 Python 设置 Excel 单元格格式

在 Excel 中,可以调整的单元格格式有很多,例如字体、文字对齐、边框等。通过 Spire.XLS 提供的 Style 属性,我们可以根据表格的用途对单元格进行不同格式的设置。下面我们来看看几种比较常见的格式设置方式,本章最后将会给出一个可以直接运行的完整示例。

1. 设置字体

字体是 Excel 表格中最常调整的格式之一。通过 Style.Font 可以修改单元格的字体名称、字号、颜色以及是否加粗等属性。例如,可以将表头设置为微软雅黑、14 号蓝色粗体。

关键代码如下:

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

其中,FontName 用于设置字体,Size 设置字号,Color 设置字体颜色,IsBold 则用于控制文字是否加粗。

2. 设置对齐方式

当单元格中的内容较长,或者需要制作表头时,对齐方式会直接影响表格的显示效果。Spire.XLS 可以分别设置水平和垂直对齐方式,还可以通过 WrapText 控制单元格内容是否自动换行。

例如,将文本设置为水平、垂直居中,并开启自动换行:

cell = sheet.Range[4, 2]
cell.Text = "这是一个居中并自动换行的示例文本"

cell.Style.HorizontalAlignment = HorizontalAlignType.Center
cell.Style.VerticalAlignment = VerticalAlignType.Center
cell.Style.WrapText = True

如果单元格中的文本比较长,开启自动换行可以避免内容超出单元格显示范围。

3. 设置边框

为数据区域添加边框,可以让不同的数据行和列更加清晰。Spire.XLS 可以针对单元格的不同边框位置设置线型和颜色。

例如,只为单元格添加底部边框:

cell = sheet.Range[6, 2]
cell.Text = "边框示例"

cell.Style.Borders[BordersLineType.EdgeBottom].LineStyle = LineStyleType.Thin
cell.Style.Borders[BordersLineType.EdgeBottom].Color = Color.get_Black()

这里使用 EdgeBottom 指定单元格的下边框,并通过 LineStyleType.Thin 设置为细线。

4. 设置单元格背景颜色

如果需要突出表头、重点数据或某些状态,可以为单元格设置背景颜色。使用 Style.Color 即可完成设置。

例如,将单元格背景设置为黄色:

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

这种方式适合对少量重点单元格进行突出显示,也可以配合字体、边框等格式一起使用。

5. 设置行高和列宽

除了直接设置单元格样式,还可以根据内容调整工作表的行高和列宽。例如,设置第一列宽度以及第 7 行高度:

# 设置指定列宽
sheet.Columns[1].ColumnWidth = 20

# 设置指定行高
sheet.Rows[7].RowHeight = 20

如果单元格中包含较长文本,可以适当增加列宽或行高,从而改善最终的显示效果。

完整代码示例

下面这个代码会创建一个工作簿,在指定单元格中添加不同的示例文本,并分别设置字体、对齐方式、边框、背景颜色以及行高和列宽。

from spire.xls import *
from spire.xls.common import *

# 创建一个 Workbook 对象,并获取一个工作表
workbook = Workbook()
sheet = workbook.Worksheets[0]

# 设置字体
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

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

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

# 设置背景颜色
cell = sheet.Range[8, 2]
cell.Text = "高亮单元格"
cell.Style.Color = Color.get_Yellow()

# 设置列宽
sheet.Columns[1].ColumnWidth = 20

# 设置行高
sheet.Rows[7].RowHeight = 20

# 保存文件
workbook.SaveToFile("/设置格式.xlsx", ExcelVersion.Version2016)
workbook.Dispose()

运行代码后,可以打开生成的 SetCellFormatting.xlsx 文件查看不同单元格的格式效果。

运行结果:

设置 Excel 单元格格式

使用 Python 复制 Excel 单元格格式

在设置好单元格格式后,如果其他单元格也需要使用相同的样式,不必重新设置字体、颜色、边框等属性。Spire.XLS 可以直接获取已有单元格的 Style,再将其应用到其他单元格或指定区域,从而快速复用已有格式。

下面我们使用上一章生成的结果文件。比如,第二章中已经将 B2 设置为蓝色、14 号、加粗的微软雅黑字体,可以直接将 B2 的格式复制到其他单元格;同样,也可以把 B4 的居中和自动换行格式应用到一个区域。

1. 将一个单元格的格式复制到另一个单元格

可以通过 Style 获取源单元格的格式,再将其赋值给目标单元格。例如,将上一章设置好格式的 B2 单元格复制到 C2:

style = worksheet.Range[2, 2].Style
worksheet.Range[2, 3].Style = style

这里的 B2 是上一章已经设置好的格式源单元格,C2 则是应用该格式的目标单元格。

提示:复制格式时不会改变目标单元格中的原有数据和公式。

2. 将一个单元格的格式应用到指定区域

如果需要将相同格式应用到多个单元格,也可以直接将源单元格的 Style 赋值给目标区域。例如,将 B4 的居中、垂直居中和自动换行格式应用到 C4:D5:

style = worksheet.Range[4, 2].Style
worksheet.Range[4, 3, 5, 4].Style = style

这种方式适合需要统一设置多个单元格格式的情况,不需要逐个修改目标单元格的样式属性。

完整代码

下面我们将使用上一章生成的含有格式的 Excel 文件来进行演示。代码将 B2 单元格的格式复制到 C2,再将 B4 单元格的格式应用到 C4:D5 区域,最后将结果保存为新的 Excel 文件。

from spire.xls import *
from spire.xls.common import *

# 创建一个 Workbook 对象并加载 Excel 文件
workbook = Workbook()
workbook.LoadFromFile("/设置格式.xlsx")

# 获取第一个工作表
worksheet = workbook.Worksheets[0]

# 在目标单元格中填写示例文本
worksheet.Range[2, 3].Text = "复制后的文本"
worksheet.Range[4, 3].Text = "区域格式 1"
worksheet.Range[4, 4].Text = "区域格式 2"
worksheet.Range[5, 3].Text = "区域格式 3"
worksheet.Range[5, 4].Text = "区域格式 4"

# 将 B2 单元格的格式复制到 C2
style = worksheet.Range[2, 2].Style
worksheet.Range[2, 3].Style = style

# 将 B4 单元格的格式应用到 C4:D5 区域
style = worksheet.Range[4, 2].Style
worksheet.Range[4, 3, 5, 4].Style = style

# 保存结果文档
workbook.SaveToFile("/复制格式.xlsx", ExcelVersion.Version2016)
workbook.Dispose()

运行结果:

复制单元格的格式

使用 Python 删除 Excel 单元格格式

如果只需要删除单元格中的格式,而不希望影响原有数据,可以使用 Spire.XLS 提供的 Clear 方法,并指定 ExcelClearOptions.ClearFormat。这种方式的好处是,删除格式时不需要分别处理字体、颜色、边框等属性,只需要指定需要清除的范围即可。

根据 Range 指定范围的不同,可以清除单个单元格、多个单元格区域,或者根据实际需要指定行、列等范围。下面将几种常见情况放在同一个示例中:

from spire.xls import *
from spire.xls.common import *

# 创建一个 Workbook 对象
workbook = Workbook()

# 加载需要修改的 Excel 文档
workbook.LoadFromFile("复制格式.xlsx")

# 获取第一个工作表
worksheet = workbook.Worksheets[0]

# 清除指定单元格的格式
worksheet.Range["B2"].Clear(ExcelClearOptions.ClearFormat)

# 清除指定区域的格式
worksheet.Range["B4:D7"].Clear(ExcelClearOptions.ClearFormat)

# 清除指定行的格式
# 根据实际需要指定对应的行范围

# 清除指定列的格式
# 根据实际需要指定对应的列范围

# 保存结果文档
workbook.SaveToFile("删除格式.xlsx", ExcelVersion.Version2016)
workbook.Dispose()

ClearFormat 只针对单元格格式进行清除,不会影响单元格中的值。

运行结果:

删除单元格格式

总结

Excel 单元格格式的处理并不局限于手动调整,通过 Spire.XLS for Python 也可以在程序中完成设置、复制和删除等操作。设置格式时可以根据需要修改字体、对齐方式、边框和背景颜色;需要复用已有样式时,可以直接复制单元格的 Style;如果只想清除格式,则可以使用 ClearFormat。对于需要批量处理 Excel 文件的任务,这些方法可以减少重复的手动操作,让格式处理更加方便。

posted @ 2026-09-24 15:51  E-iceblue  阅读(5)  评论(0)    收藏  举报