找回密码
 立即注册
首页 业界区 业界 国产化Excel开发组件Spire.XLS教程:Python 写入 Excel ...

国产化Excel开发组件Spire.XLS教程:Python 写入 Excel 文件,数据写入自动化实用指南

赖秀竹 2025-10-6 12:28:02
1.png

Excel 是最常用的数据整理、分析和展示工具之一。无论是财务报表还是运营仪表盘,很多场景都需要将数据导出到 Excel,以便阅读和共享。相比手动输入,通过 Python 自动化写入 Excel 文件 能让处理过程更高效、更可靠,也具备更好的扩展性。
在本文中,我们将介绍如何借助Spire.XLS使用 Python 将数据写入 Excel 文件,内容涵盖结构化数据插入、格式设置以及数据导出。文中示例所用库支持在代码中直接创建并自定义工作簿。
Spire.XLS for Python试用下载,请联系E-iceblue-Spire授权代理商慧都科技
技术交流Q群(125237868)
环境准备

在 Python 中写入 Excel 文件,需要使用支持创建、加载和保存工作簿的库。Spire.XLS for Python 提供完整的 API,可以轻松实现自动化报表生成和数据处理。
使用 pip 安装:
  1. pip install spire.xls
复制代码
安装完成后,可以通过以下三种核心操作来处理 Excel 文件:

  • 创建新工作簿 – 使用 Workbook() 初始化 Excel 文档。
  • 加载现有工作簿 – 使用 LoadFromFile() 打开已有 Excel 文件。
  • 保存工作簿 – 使用 SaveToFile() 将工作簿导出为 .xlsx、.xls、CSV 等格式。
这些操作构成了后续写入数据、设置格式和管理多工作表的基础。
  1. from spire.xls import Workbook, ExcelVersion
  2. workbook = Workbook()
  3. workbook.LoadFromFile("Sample.xlsx")
  4. sheet = workbook.Worksheets[0]
  5. # 添加新行(中文示例)
  6. sheet.Range["A4"].Value = "笔记本电脑"
  7. sheet.Range["B4"].NumberValue = 5
  8. sheet.Range["C4"].NumberValue = 5800.00
  9. sheet.Range["A5"].Value = "显示器"
  10. sheet.Range["B5"].NumberValue = 10
  11. sheet.Range["C5"].NumberValue = 1200.00
  12. workbook.SaveToFile("output/updated_excel.xlsx", ExcelVersion.Version2016)
复制代码
 
使用 Python 将数据写入 Excel 文件

在实际业务中,可能需要新建 Excel 文件、更新现有报表,或者写入不同类型的数据(如文本、数字、日期和公式)。下面展示了在这些常见场景下,如何高效地 用 Python 在 Excel 中写入和管理数据
向现有 Excel 文件追加数据

如果需要在已有 Excel 报表中追加新信息,例如新增销售记录、库存更新或附加数据行,可以通过以下方式在不覆盖原有内容的情况下插入数据并保存:
关键点:

  • LoadFromFile() – 加载现有 Excel 文件。
  • Range["单元格"] – 通过名称引用单元格。
  • Value / NumberValue – 向单元格写入文本或数值。
  • SaveToFile() – 保存文件到指定格式。
这种方式能让报表在不丢失原始内容的情况下持续更新。
示例效果:
2.png
批量写入多行多列数据

对于大规模数据,逐行逐列写入效率低,推荐一次性写入整个数据集。这样不仅节省时间,还能保证数据在表格中的一致性:
  1. from spire.xls import Workbook, ExcelVersion
  2. # 创建新工作簿
  3. workbook = Workbook()
  4. sheet = workbook.Worksheets[0]
  5. orders = [
  6.     ["订单号", "客户", "产品", "数量", "价格", "状态"],
  7.     [1001, "张三", "笔记本电脑", 2, 5800.00, "已发货"],
  8.     [1002, "李四", "显示器", 1, 1200.00, "待处理"],
  9.     [1003, "王五", "键盘", 5, 80.00, "已送达"],
  10.     [1004, "赵六", "鼠标", 3, 50.00, "已发货"],
  11.     [1005, "钱七", "平板电脑", 1, 2600.00, "待处理"]
  12. ]
  13. for row_index, row_data in enumerate(orders, start=1):
  14.     for col_index, value in enumerate(row_data, start=1):
  15.         if isinstance(value, (int, float)):
  16.             sheet.Range[row_index, col_index].NumberValue = value
  17.         else:
  18.             sheet.Range[row_index, col_index].Value = value
  19. workbook.SaveToFile("output/orders.xlsx", ExcelVersion.Version2016)
复制代码
要点:

  • enumerate() – 获取行列索引。
  • Range[row, col] – 通过行列索引引用单元格。
批量写入非常适合导出数据库查询结果或生成运营报表。
效果示例:
3.png
写入不同类型的数据

Excel 支持多种数据类型,例如文本、数字、日期、公式和布尔值。使用合适的属性和方法可以保证数据准确存储和展示:
  1. from spire.xls import Workbook, ExcelVersion, DateTime, TimeSpan
  2. workbook = Workbook()
  3. sheet = workbook.Worksheets[0]
  4. # 一般值
  5. sheet.Range[2, 2].Text = "常规示例"
  6. sheet.Range[2, 3].Value = "示例123"
  7. # 数字
  8. sheet.Range[3, 2].Text = "数字示例"
  9. sheet.Range[3, 3].NumberValue = 1234.56
  10. sheet.Range[3, 3].NumberFormat = "0.000"
  11. # 日期
  12. sheet.Range[4, 2].Text = "日期示例"
  13. sheet.Range[4, 3].DateTimeValue = DateTime.get_UtcNow()
  14. # 公式
  15. sheet.Range[5, 2].Text = "公式示例"
  16. sheet.Range[5, 5].NumberValue = 1234.56
  17. sheet.Range[5, 6].NumberValue = 6543.21
  18. sheet.Range[5, 3].Formula = "=SUM(E5:F5)"
  19. # 文本
  20. sheet.Range[6, 2].Text = "文本示例"
  21. sheet.Range[6, 3].Text = "示例文本"
  22. # 布尔值
  23. sheet.Range[7, 2].Text = "布尔示例"
  24. sheet.Range[7, 3].BooleanValue = True
  25. sheet.AllocatedRange.Style.Font.FontName = "微软雅黑"
  26. sheet.AllocatedRange.AutoFitColumns()
  27. workbook.SaveToFile("output/value_types.xlsx", ExcelVersion.Version2016)
复制代码
常用属性:

  • Value – 一般值,适合文本或混合内容。
  • NumberValue – 数字值,保证格式和计算正确。
  • DateTimeValue – 日期时间值。
  • Formula – 设置公式,实现动态计算。
  • BooleanValue – 布尔值 True/False。
  • Text – 单元格显示文本。
效果示例:
4.png
在写入 Excel 时应用格式设置

为了让 Excel 报表更清晰、专业,可以在写入数据的同时应用格式。本节展示如何通过样式、数字格式和行列尺寸调整来提升可读性。
应用单元格样式

可以为单元格设置字体、边框、背景色等样式:
  1. from spire.xls import Workbook, Color, FontUnderlineType, ExcelVersion, BordersLineType, LineStyleType
  2. workbook = Workbook()
  3. sheet = workbook.Worksheets[0]
  4. # 表头
  5. sheet.Range["A1"].Value = "产品"
  6. sheet.Range["B1"].Value = "类别"
  7. sheet.Range["C1"].Value = "单价"
  8. sheet.Range["D1"].Value = "数量"
  9. sheet.Range["E1"].Value = "合计"
  10. # 数据
  11. sheet.Range["A2"].Value = "华为笔记本"
  12. sheet.Range["B2"].Value = "电脑"
  13. sheet.Range["C2"].NumberValue = 5800.00
  14. sheet.Range["D2"].NumberValue = 1
  15. sheet.Range["E2"].Formula = "=C2*D2"
  16. sheet.Range["A3"].Value = "小米手机"
  17. sheet.Range["B3"].Value = "手机"
  18. sheet.Range["C3"].NumberValue = 3200.00
  19. sheet.Range["D3"].NumberValue = 1
  20. sheet.Range["E3"].Formula = "=C3*D3"
  21. # 设置表头样式
  22. header = sheet.Range["A1:E1"]
  23. header.Style.Font.FontName = "微软雅黑"
  24. header.Style.Font.Size = 12.0
  25. header.Style.Font.IsBold = True
  26. header.Style.Font.Underline = FontUnderlineType.Single
  27. header.Style.Interior.Color = Color.get_LightGray()
  28. header.Style.Borders[BordersLineType.EdgeRight].LineStyle = LineStyleType.Medium
复制代码
核心属性:

  • Style.Font – 控制字体样式(加粗、下划线等)。
  • Interior.Color – 单元格背景色。
  • Borders.LineStyle – 单元格边框样式。
样式能突出重点区域,增强可读性。
设置数字格式

通过 NumberFormat,可以将数字显示为货币、百分比等格式:
  1. # 设置数字格式
  2. sheet.Range["C2:C3"].NumberFormat = "¥#,##0.00"   # 货币格式
  3. sheet.Range["D2:D3"].NumberFormat = "0"           # 整数格式
  4. sheet.Range["E2:E3"].NumberFormat = "¥#,##0.00"
复制代码
要点:

  • NumberFormat – 控制数字显示方式,数据本身不变。
  • 可定义符号、小数位、百分比等展示规则。
适当的数字格式能让财务数据更直观、更专业。
调整列宽和行高

为了保证内容完整显示,可以自动调整或固定行列尺寸:
  1. # 自动调整列宽和行高
  2. for col in range(1, 5):
  3.     sheet.AutoFitColumn(col)
  4. for row in range(1, 3):
  5.     sheet.AutoFitRow(row)
  6. # 指定区域自动调整
  7. #sheet.Range["A1:E3"].AutoFitColumns()
  8. #sheet.Range["A1:E3"].AutoFitRows()
  9. # 固定列宽和行高
  10. sheet.Columns[1].Width = 150
  11. sheet.Rows[1].Height = 30
  12. workbook.SaveToFile("output/formatted_excel.xlsx", ExcelVersion.Version2016)
复制代码
关键点:

  • AutoFitColumn / AutoFitRow – 自动调整单列/单行。
  • AutoFitColumns / AutoFitRows – 调整指定区域。
  • Width / Height – 手动设置固定宽高。
灵活使用自动调整和固定尺寸,可以保证报表既整齐又美观。
效果示例:
5.png
使用 Python 管理 Excel 多工作表

在 Excel 中,将数据分类存放在多个工作表中能让结构更清晰。例如,可以为销售、采购、库存等创建不同工作表。本节演示如何 创建、访问和管理多个工作表
  1. from spire.xls import Workbook, ExcelVersion
  2. workbook = Workbook()
  3. sheet = workbook.Worksheets[0]
  4. sheet.Name = "销售数据"
  5. sheet1 = workbook.Worksheets["Sheet2"]
  6. sheet1.Name = "采购数据"
  7. sheet2 = workbook.Worksheets.Add("库存数据")
  8. sheet2.Range["A1"].Value = "产品ID"
  9. sheet2.Range["B1"].Value = "库存数量"
  10. sheet2.Range["A2"].Value = "P001"
  11. sheet2.Range["B2"].NumberValue = 100
  12. sheet2.Range["A3"].Value = "P002"
  13. sheet2.Range["B3"].NumberValue = 50
  14. workbook.SaveToFile("output/multi_sheet.xlsx", ExcelVersion.Version2016)
复制代码
主要方法:

  • Worksheets[Index] – 按索引访问工作表。
  • Worksheets["单元格名称"] – 按单元格名称(如 A1)访问,更直观。
  • Worksheets.Add("名称") – 新增工作表,适合分类存储不同数据。
合理管理多个工作表能让数据更有条理。
生成 Excel 文件效果:
6.png

使用 Python 写入 Excel 的最佳实践

在写入 Excel 文件时,建议遵循以下原则:

  • 使用描述性表名,如 “Sales_2024” 而非 “Sheet1”。
  • 批量写入大数据集,避免逐单元格操作,提高性能。
  • 保持格式一致,特别是表头、合计列。
  • 利用公式,保持动态计算。
  • 验证数据类型,避免在图表或公式中出错。
  • 选择合适文件格式:现代场景用 .xlsx,兼容性需求用 .xls。
  • 逻辑组织工作表,便于导航和管理。
遵循这些规范,能生成更专业、可复用的报表。
总结

使用 Python 自动化写入 Excel,可以大幅提升报表生成效率。通过创建工作簿、批量写入数据、应用样式、管理多工作表以及支持多种数据类型,开发者可以轻松生成一致、准确且专业的 Excel 文件。
Python 写入 Excel 常见问题

Q1: Python 可以写入已有 Excel 文件吗?

可以。Python 能加载已有文件,在保留原有数据的同时追加或修改内容。
Q2: 如何高效处理大数据集?

批量写入多行数据,并在插入时尽量减少格式操作,可以保证性能。
Q3: 可以在 Excel 文件中添加公式吗?

可以。支持输入公式(如 =SUM()),并保持动态计算。
Q4: Spire.XLS for Python 支持操作哪些 Excel 格式?

Spire.XLS for Pytho支持保存为 .xlsx、.xls、CSV,还可以导出为 PDF,满足不同兼容性需求。
Spire.XLS for Python试用下载,请联系E-iceblue-Spire授权代理商慧都科技
技术交流Q群(125237868)

来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

相关推荐

2025-11-2 17:00:10

举报

2025-11-21 22:05:36

举报

您需要登录后才可以回帖 登录 | 立即注册