编辑 Excel 文档涉及多种操作,如输入和格式化文本、应用公式、生成可视化图表,以及整理数据以便更清晰地展示信息和支持数据分析。能够以编程方式编辑 Excel 文档,是提升数据管理能力的重要技能。
本文将介绍如何使用 Spire.XLS for Python 通过 Python 代码编辑现有的 Excel 文档。
安装 Spire.XLS for Python
此教程需要 Spire.XLS for Python 和 plum-dispatch v1.7.4。您可以通过以下 pip 命令将它们轻松安装到 Windows 中。
pip install Spire.XLS
如果您不确定如何安装,请参考: 如何在 Windows 中安装 Spire.XLS for Python
用 Python 读取和写入 Excel 文件
在 Python 中处理 Excel 文件时,高效地读取和写入数据是一项关键任务,广泛应用于数据分析、报告生成等场景。Spire.XLS for Python 通过提供 CellRange.Value 属性,极大地简化了这一过程。开发者可以通过此属性轻松获取单元格的值或重新赋值。
以下是在 Python 中读取和写入 Excel 文件的步骤:
- • 创建一个 Workbook 对象。
- • 使用 Workbook.LoadFromFile() 方法从指定路径加载 Excel 文件。
- • 通过 Workbook.Worksheets.get_Item(index) 方法获取特定工作表。
- • 使用 Worksheet.Range 属性获取特定单元格。
- • 通过 CellRange.Value 属性获取或设置单元格的值。
- • 使用 Workbook.SaveToFile() 方法将工作簿保存为新的 Excel 文件。
- Python
from spire.xls import Workbook
# 创建一个 Workbook(工作簿)对象
workbook = Workbook()
# 加载一个 Excel 文件
workbook.LoadFromFile("示例.xlsx")
# 获取指定的工作表
worksheet = workbook.Worksheets.get_Item(0)
# 获取指定的单元格
cell = worksheet.Range.get_Item("A10")
# 读取单元格的值
cellValue = cell.Value
# 判断单元格的值是否为 "Department"
if cellValue == "总运营费用":
# 更新单元格的值
cell.Value = "合计"
# 将工作簿保存为另一个文件
workbook.SaveToFile("output/编辑Excel文件.xlsx")
# 释放资源
workbook.Dispose()
用 Python 为 Excel 单元格应用格式
格式化 Excel 文档对于生成专业且易于阅读的报告至关重要。Spire.XLS for Python 在 CellRange 类中提供了丰富的 API,帮助开发者灵活地管理各种格式设置,例如调整字体样式、选择单元格颜色、设置文本对齐方式以及修改行高和列宽。
以下是在 Python 中应用单元格样式和格式的步骤:
- • 创建一个 Workbook 对象。
- • 使用 Workbook.LoadFromFile() 方法从指定路径加载 Excel 文件。
- • 通过 Workbook.Worksheets.get_Item(index) 方法获取特定工作表。
- • 使用 Worksheet.AllocatedRange 属性获取所有已分配的单元格区域。
- • 通过 CellRange.Rows.get_Item(index) 方法获取特定行,使用 CellRange 对象下的属性设置单元格背景色、文字颜色、文本对齐方式及行高。
- • 通过 CellRange.Columns.get_Item(index) 方法获取特定列,并使用 ColumnWidth 属性设置列宽。
- • 使用 Workbook.SaveToFile() 方法将工作簿保存为新的 Excel 文件。
- Python
from spire.xls import Workbook, Color, HorizontalAlignType, VerticalAlignType
# 创建一个 Workbook(工作簿)对象
workbook = Workbook()
# 加载一个 Excel 文件
workbook.LoadFromFile("示例.xlsx")
# 获取指定的工作表
worksheet = workbook.Worksheets.get_Item(0)
# 获取工作表中所有已分配的单元格区域
allocatedRange = worksheet.AllocatedRange
# 遍历所有行
for rowNum in range(0, allocatedRange.RowCount):
if rowNum == 0:
# 为表头行应用背景色
allocatedRange.Rows.get_Item(rowNum).Style.Color = Color.get_Black()
# 更改表头行的字体颜色
allocatedRange.Rows.get_Item(rowNum).Style.Font.Color = Color.get_White()
else:
# 为其他行应用交替的背景色
if rowNum % 2 == 1:
allocatedRange.Rows.get_Item(rowNum).Style.Color = Color.get_LightGray()
else:
allocatedRange.Rows.get_Item(rowNum).Style.Color = Color.get_White()
# 水平居中对齐文本
allocatedRange.Rows.get_Item(rowNum).HorizontalAlignment = HorizontalAlignType.Center
# 垂直居中对齐文本
allocatedRange.Rows.get_Item(rowNum).VerticalAlignment = VerticalAlignType.Center
# 设置行高
allocatedRange.Rows.get_Item(rowNum).RowHeight = 20
# 遍历所有列
for columnNum in range(0, allocatedRange.ColumnCount):
if columnNum > 0:
# 设置列宽或自动列宽
allocatedRange.Columns.get_Item(columnNum).ColumnWidth = 20
#allocatedRange.AutoFitColumns()
# 将工作簿保存为另一个文件
workbook.SaveToFile("output/设置Excel单元格格式.xlsx")
# 释放资源
workbook.Dispose()
用 Python 查找并替换 Excel 文本
Excel 的查找与替换功能可以帮助用户快速定位电子表格中的特定文本并用新内容替换,非常适合数据修正与更新场景。使用 Spire.XLS for Python,可以通过 Worksheet.FindString() 方法高效地定位包含特定字符串的单元格,随后利用 CellRange.Value 属性轻松替换其值。
以下是在 Python 中查找并替换 Excel 文本的步骤:
- • 创建一个 Workbook 对象。
- • 使用 Workbook.LoadFromFile() 方法从指定路径加载 Excel 文件。
- • 通过 Workbook.Worksheets.get_Item(index) 方法获取特定工作表。
- • 使用 Worksheet.FindString() 方法查找包含指定字符串的单元格。
- • 通过 CellRange.Value 属性更新单元格的值。
- • 使用 Workbook.SaveToFile() 方法将工作簿保存为新的 Excel 文件。
- Python
from spire.xls import Workbook
# 创建一个 Workbook(工作簿)对象
workbook = Workbook()
# 加载 Excel 文件
workbook.LoadFromFile("示例.xlsx")
# 获取第一个工作表
worksheet = workbook.Worksheets[0]
# 定义要查找的原始运营费用名称
original_names = ["广告", "呆帐", "现金折扣", "配送成本", "折旧", "会费与订阅费", "保险", "其他", "总运营费用"]
# 定义对应的替换名称
replacement_names = ["广告(国内)", "坏账", "现金优惠", "物流费用", "设备折旧", "会员订阅费用", "商业保险", "杂项支出", "合计运营费用"]
# 遍历每个原始名称
for i in range(0, len(original_names)):
# 查找包含当前原始名称的单元格
cell = worksheet.FindString(original_names[i], False, False)
# 如果找到,替换为对应的新名称
if cell:
cell.Value = replacement_names[i]
# 将修改后的工作簿保存到新的文件
workbook.SaveToFile("output/查找替换Excel文本.xlsx")
# 释放资源
workbook.Dispose()
用 Python 为 Excel 添加公式和图表
除了基本的文件操作外,Spire.XLS for Python 还支持多种高级功能。例如,可以使用 CellRange.Formula 属性在单元格中插入公式,实现实时计算与数据分析。同时,还可以通过 Worksheet.Charts.Add() 方法向工作表添加图表,以直观展示数据。
以下是在 Python 中添加公式和图表的步骤:
- • 创建一个 Workbook 对象。
- • 使用 Workbook.LoadFromFile() 方法从指定路径加载 Excel 文件。
- • 通过 Workbook.Worksheets.get_Item(index) 方法获取特定工作表。
- • 使用 Worksheet.Range 属性获取特定单元格。
- • 通过 CellRange.Formula 属性向单元格添加公式。
- • 使用 Worksheet.Charts.Add() 方法向工作表添加柱状图。
- • 通过 Chart 对象下的属性设置图表的数据区域、位置、标题及其他属性。
- • 使用 Workbook.SaveToFile() 方法将工作簿保存为新的 Excel 文件。
- Python
from spire.xls import Workbook, HorizontalAlignType, ExcelChartType
# 创建一个 Workbook对象
workbook = Workbook()
# 加载 Excel 文件
workbook.LoadFromFile("示例.xlsx")
# 获取第一个工作表
worksheet = workbook.Worksheets[0]
# 获取所有已分配的单元格区域
allocatedRange = worksheet.AllocatedRange
# 遍历所有行(不包括最后一行“总运营费用”)
for rowNum in range(0, allocatedRange.RowCount - 1):
if rowNum == 0:
# 在 G1 单元格写入标题
worksheet.Range[rowNum + 1, 7].Text = "差额百分比"
worksheet.Range[rowNum + 1, 7].Style.Font.IsBold = True
worksheet.Range[rowNum + 1, 7].Style.HorizontalAlignment = HorizontalAlignType.Center
else:
# 在 G2 到 G8 单元格添加公式 (差额 / 估算金额)
worksheet.Range[rowNum + 1, 7].Formula = f"=D{rowNum + 1}/B{rowNum + 1}"
worksheet.Range[rowNum + 1, 7].Style.NumberFormat = "0.00%"
# 添加一个簇状柱形图
chart = worksheet.Charts.Add(ExcelChartType.ColumnClustered)
# 设置图表数据范围(不包括最后一行“总运营费用”)
chart.DataRange = worksheet.Range["A1:D8"]
chart.SeriesDataFromRange = False
# 设置图表位置
chart.LeftColumn = 1
chart.TopRow = 10
chart.RightColumn = 8
chart.BottomRow = 23
# 设置并格式化图表标题
chart.ChartTitle = "各部门季度运营费用"
chart.ChartTitleArea.Size = 13
chart.ChartTitleArea.IsBold = True
# 保存文件
workbook.SaveToFile("output/添加公式和图表到Excel.xlsx")
# 释放资源
workbook.Dispose()
申请临时 License
如果您需要去除生成文档中的评估提示或解除功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。