excel 是一种广泛用于组织、分析和展示数据的电子表格文件。具有与 excel 文件进行交互编程的能力是在软件应用程序中实现 excel 功能自动化的关键。具体来说,了解如何通过代码创建新的 excel 文档、从现有文档中检索信息以及按要求更新或修改数据将非常有帮助。本文将演示如何使用 spire.xls for python 在 python 中创建、读取或更新 excel 文件。
安装 spire.xls for python
此教程需要 spire.xls for python 和 plum-dispatch v1.7.4。您可以通过以下 pip 命令将它们轻松安装到 vs code 中。
pip install spire.xls-for-python
pip install plum-dispatch==1.7.4
使用 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.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.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.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 天的临时许可证。