Excel 是一种广泛用于组织、分析和展示数据的电子表格文件。具有与 Excel 文件进行交互编程的能力是在软件应用程序中实现 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 文档
Spire.XLS for Python 提供了各种可用于创建和编辑 Excel 文档的类和接口。下表列举了一些本文中用到的重要类、属性和方法。
成员 | 描述 |
Workbook 类 | 表示 Excel 工作簿模型。 |
Workbook.Worksheets.Add() 方法 | 添加工作表到工作簿。 |
Workbook.SaveToFile() 方法 | 将工作簿保存为 Excel 文档。 |
Worksheet 类 | 表示工作簿中的工作表。 |
Worksheet.Range 属性 | 获取工作表中的特定单元格或单元格区域。 |
Worksheet.Range.Text 属性 | 获取或设置单元格的文本值。 |
Worksheet.Rows 属性 | 获取工作表中行的集合。 |
CellRange 类 | 表示工作表中的单元格或单元格区域。 |
以下是使用 Spire.XLS for Python 创建一个新的 Excel 文档的步骤。
- 创建一个 Workbook 对象。
- 使用 Workbook.Worksheets.Add() 方法添加工作表。
- 通过 Workheet.Range.Text 属性向特定单元格写入数据。
- 设置行高、列宽及边框样式。
- 使用 Workbook.SaveToFile() 方法将工作簿保存为 Excel 文档。
- Python
from spire.xls import *
from spire.xls.common import *
# 创建Workbook对象
wb = Workbook()
# 删除默认工作表
wb.Worksheets.Clear()
# 添加一个工作表并命名
sheet = wb.Worksheets.Add("报价")
# 合并A1至G1单元格
sheet.Range["A1:G1"].Merge()
# 在A1中写入数据并设置格式
sheet.Range["A1"].Text = "活动费用报价表"
sheet.Range["A1"].HorizontalAlignment = HorizontalAlignType.Center
sheet.Range["A1"].VerticalAlignment = VerticalAlignType.Center
sheet.Range["A1"].Style.Font.IsBold = True
sheet.Range["A1"].Style.Font.Size = 13
# 设置第一行的行高
sheet.Rows[0].RowHeight = 30
# 在特定单元格中写入数据
sheet.Range["A2"].Text = "编号"
sheet.Range["B2"].Text = "项目"
sheet.Range["C2"].Text = "规格说明"
sheet.Range["D2"].Text = "时间"
sheet.Range["E2"].Text = "数量"
sheet.Range["F2"].Text = "单价"
sheet.Range["G2"].Text = "价格"
sheet.Range["A3"].Text = "1"
sheet.Range["B3"].Text = "钢架舞台"
sheet.Range["C3"].Text = "8*4米"
sheet.Range["D3"].Text = "1场"
sheet.Range["E3"].Text = "18平米"
sheet.Range["F3"].Text = "35元/平米"
sheet.Range["G3"].Text = "630.00"
sheet.Range["A4"].Text = "2"
sheet.Range["B4"].Text = "舞台围布"
sheet.Range["C4"].Text = "20公分"
sheet.Range["D4"].Text = "1场"
sheet.Range["E4"].Text = "16米"
sheet.Range["F4"].Text = "8元/米"
sheet.Range["G4"].Text = "128.00"
sheet.Range["A5"].Text = "3"
sheet.Range["B5"].Text = "背景架"
sheet.Range["C5"].Text = "8*4米"
sheet.Range["D5"].Text = "1场"
sheet.Range["E5"].Text = "12平米"
sheet.Range["F5"].Text = "35元/平米"
sheet.Range["G5"].Text = "420.00"
sheet.Range["A6"].Text = "4"
sheet.Range["B6"].Text = "条幅"
sheet.Range["C6"].Text = "90公分宽"
sheet.Range["D6"].Text = "永久"
sheet.Range["E6"].Text = "10米"
sheet.Range["F6"].Text = "10元/米"
sheet.Range["G6"].Text = "100.00"
sheet.Range["A7"].Text = "5"
sheet.Range["B7"].Text = "地毯"
sheet.Range["C7"].Text = "全新红地毯"
sheet.Range["D7"].Text = "永久"
sheet.Range["E7"].Text = "100米(暂定)"
sheet.Range["F7"].Text = "7元/米"
sheet.Range["G7"].Text = "700.00"
# 设置指定单元格区域的行高
sheet.Range["A2:G7"].RowHeight = 15
# 设置列宽
sheet.SetColumnWidth(2, 13)
sheet.SetColumnWidth(3, 12)
sheet.SetColumnWidth(5, 14)
sheet.SetColumnWidth(6, 12)
# 设置指定单元格区域的边框样式
sheet.Range["A2:G7"].BorderAround(LineStyleType.Medium)
sheet.Range["A2:G7"].BorderInside(LineStyleType.Thin)
sheet.Range["A2:G2"].BorderAround(LineStyleType.Medium)
sheet.Range["A2:G7"].Borders.KnownColor = ExcelColors.Black
# 保存为 .xlsx 文件
wb.SaveToFile("创建Excel文档.xlsx", FileFormat.Version2016)
使用 Python 读取 Excel 数据
Worksheet.Range.Value 属性能以字符串形式返回单元格中的数字值或文本值。要获取整个 Excel 工作表或某个单元格区域中的数据,可循环遍历其中的单元格。以下是使用 Spire.XLS for Python 读取 Excel 工作表中数据的步骤。
- 创建一个 Workbook 对象。
- 使用 Workbook.LoadFromFile() 方法加载 Excel 文档。
- 通过 Workbook.Worksheets[index] 属性获取特定工作表。
- 通过 Workbook.AllocatedRange 属性获取包含数据的单元格区域。
- 遍历行和列以获取单元格区域内的单元格,然后通过 CellRange.Value 属性返回每个单元格的值。
- Python
from spire.xls import *
from spire.xls.common import *
# 创建Workbook对象
wb = Workbook()
# 加载Excel文档
wb.LoadFromFile("创建Excel文档.xlsx");
# 获取第一张工作表
sheet = wb.Worksheets[0]
# 获取包含数据的单元格区域
locatedRange = sheet.AllocatedRange
# 遍历各行
for i in range(len(sheet.Rows)):
# 遍历各列
for j in range(len(locatedRange.Rows[i].Columns)):
# 获取指定单元格的数据
print(locatedRange[i + 1, j + 1].Value + " ", end='')
print("")
使用 Python 更新 Excel 文档
要更改某个单元格的值,只需通过 Worksheet.Range.Value 属性为其重新赋值即可。具体步骤如下。
- 创建一个 Workbook 对象。
- 使用 Workbook.LoadFromFile() 方法加载 Excel 文档。
- 通过 Workbook.Worksheets[index] 属性获取特定工作表。
- 通过 Workheet.Range.Value 属性更改特定单元格的值。
- 使用 Workbook.SaveToFile() 方法将工作簿保存到 Excel 文件。
- Python
from spire.xls import *
from spire.xls.common import *
# 创建Workbook对象
wb = Workbook()
# 加载Excel文档
wb.LoadFromFile("创建Excel文档.xlsx");
# 获取第一张工作表
sheet = wb.Worksheets[0]
# 更改指定单元格的值
sheet.Range["A1"].Value = "修改数据"
# 保存结果文件
wb.SaveToFile("更新Excel.xlsx", ExcelVersion.Version2016)
申请临时 License
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。