当前位置: 首页 > news >正文

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

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 安装:

pip install spire.xls

安装完成后,可以通过以下三种核心操作来处理 Excel 文件:

  • 创建新工作簿 – 使用 Workbook() 初始化 Excel 文档。
  • 加载现有工作簿 – 使用 LoadFromFile() 打开已有 Excel 文件。
  • 保存工作簿 – 使用 SaveToFile() 将工作簿导出为 .xlsx、.xls、CSV 等格式。

这些操作构成了后续写入数据、设置格式和管理多工作表的基础。

from spire.xls import Workbook, ExcelVersionworkbook = Workbook()
workbook.LoadFromFile("Sample.xlsx")
sheet = workbook.Worksheets[0]# 添加新行(中文示例)
sheet.Range["A4"].Value = "笔记本电脑"
sheet.Range["B4"].NumberValue = 5
sheet.Range["C4"].NumberValue = 5800.00sheet.Range["A5"].Value = "显示器"
sheet.Range["B5"].NumberValue = 10
sheet.Range["C5"].NumberValue = 1200.00workbook.SaveToFile("output/updated_excel.xlsx", ExcelVersion.Version2016)

 

使用 Python 将数据写入 Excel 文件

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

向现有 Excel 文件追加数据

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

关键点:

  • LoadFromFile() – 加载现有 Excel 文件。
  • Range["单元格"] – 通过名称引用单元格。
  • Value / NumberValue – 向单元格写入文本或数值。
  • SaveToFile() – 保存文件到指定格式。

这种方式能让报表在不丢失原始内容的情况下持续更新。

示例效果:

批量写入多行多列数据

对于大规模数据,逐行逐列写入效率低,推荐一次性写入整个数据集。这样不仅节省时间,还能保证数据在表格中的一致性:

from spire.xls import Workbook, ExcelVersion# 创建新工作簿
workbook = Workbook()
sheet = workbook.Worksheets[0]orders = [["订单号", "客户", "产品", "数量", "价格", "状态"],[1001, "张三", "笔记本电脑", 2, 5800.00, "已发货"],[1002, "李四", "显示器", 1, 1200.00, "待处理"],[1003, "王五", "键盘", 5, 80.00, "已送达"],[1004, "赵六", "鼠标", 3, 50.00, "已发货"],[1005, "钱七", "平板电脑", 1, 2600.00, "待处理"]
]for row_index, row_data in enumerate(orders, start=1):for col_index, value in enumerate(row_data, start=1):if isinstance(value, (int, float)):sheet.Range[row_index, col_index].NumberValue = valueelse:sheet.Range[row_index, col_index].Value = valueworkbook.SaveToFile("output/orders.xlsx", ExcelVersion.Version2016)

要点:

  • enumerate() – 获取行列索引。
  • Range[row, col] – 通过行列索引引用单元格。

批量写入非常适合导出数据库查询结果或生成运营报表。

效果示例:

写入不同类型的数据

Excel 支持多种数据类型,例如文本、数字、日期、公式和布尔值。使用合适的属性和方法可以保证数据准确存储和展示:

from spire.xls import Workbook, ExcelVersion, DateTime, TimeSpanworkbook = Workbook()
sheet = workbook.Worksheets[0]# 一般值
sheet.Range[2, 2].Text = "常规示例"
sheet.Range[2, 3].Value = "示例123"# 数字
sheet.Range[3, 2].Text = "数字示例"
sheet.Range[3, 3].NumberValue = 1234.56
sheet.Range[3, 3].NumberFormat = "0.000"# 日期
sheet.Range[4, 2].Text = "日期示例"
sheet.Range[4, 3].DateTimeValue = DateTime.get_UtcNow()# 公式
sheet.Range[5, 2].Text = "公式示例"
sheet.Range[5, 5].NumberValue = 1234.56
sheet.Range[5, 6].NumberValue = 6543.21
sheet.Range[5, 3].Formula = "=SUM(E5:F5)"# 文本
sheet.Range[6, 2].Text = "文本示例"
sheet.Range[6, 3].Text = "示例文本"# 布尔值
sheet.Range[7, 2].Text = "布尔示例"
sheet.Range[7, 3].BooleanValue = Truesheet.AllocatedRange.Style.Font.FontName = "微软雅黑"
sheet.AllocatedRange.AutoFitColumns()workbook.SaveToFile("output/value_types.xlsx", ExcelVersion.Version2016)

常用属性:

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

效果示例:

在写入 Excel 时应用格式设置

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

应用单元格样式

可以为单元格设置字体、边框、背景色等样式:

from spire.xls import Workbook, Color, FontUnderlineType, ExcelVersion, BordersLineType, LineStyleTypeworkbook = Workbook()
sheet = workbook.Worksheets[0]# 表头
sheet.Range["A1"].Value = "产品"
sheet.Range["B1"].Value = "类别"
sheet.Range["C1"].Value = "单价"
sheet.Range["D1"].Value = "数量"
sheet.Range["E1"].Value = "合计"# 数据
sheet.Range["A2"].Value = "华为笔记本"
sheet.Range["B2"].Value = "电脑"
sheet.Range["C2"].NumberValue = 5800.00
sheet.Range["D2"].NumberValue = 1
sheet.Range["E2"].Formula = "=C2*D2"sheet.Range["A3"].Value = "小米手机"
sheet.Range["B3"].Value = "手机"
sheet.Range["C3"].NumberValue = 3200.00
sheet.Range["D3"].NumberValue = 1
sheet.Range["E3"].Formula = "=C3*D3"# 设置表头样式
header = sheet.Range["A1:E1"]
header.Style.Font.FontName = "微软雅黑"
header.Style.Font.Size = 12.0
header.Style.Font.IsBold = True
header.Style.Font.Underline = FontUnderlineType.Single
header.Style.Interior.Color = Color.get_LightGray()
header.Style.Borders[BordersLineType.EdgeRight].LineStyle = LineStyleType.Medium

核心属性:

  • Style.Font – 控制字体样式(加粗、下划线等)。
  • Interior.Color – 单元格背景色。
  • Borders.LineStyle – 单元格边框样式。

样式能突出重点区域,增强可读性。

设置数字格式

通过 NumberFormat,可以将数字显示为货币、百分比等格式:

# 设置数字格式
sheet.Range["C2:C3"].NumberFormat = "¥#,##0.00"   # 货币格式
sheet.Range["D2:D3"].NumberFormat = "0"           # 整数格式
sheet.Range["E2:E3"].NumberFormat = "¥#,##0.00"

要点:

  • NumberFormat – 控制数字显示方式,数据本身不变。
  • 可定义符号、小数位、百分比等展示规则。

适当的数字格式能让财务数据更直观、更专业。

调整列宽和行高

为了保证内容完整显示,可以自动调整或固定行列尺寸:

# 自动调整列宽和行高
for col in range(1, 5):sheet.AutoFitColumn(col)
for row in range(1, 3):sheet.AutoFitRow(row)# 指定区域自动调整
#sheet.Range["A1:E3"].AutoFitColumns()
#sheet.Range["A1:E3"].AutoFitRows()# 固定列宽和行高
sheet.Columns[1].Width = 150
sheet.Rows[1].Height = 30workbook.SaveToFile("output/formatted_excel.xlsx", ExcelVersion.Version2016)

关键点:

  • AutoFitColumn / AutoFitRow – 自动调整单列/单行。
  • AutoFitColumns / AutoFitRows – 调整指定区域。
  • Width / Height – 手动设置固定宽高。

灵活使用自动调整和固定尺寸,可以保证报表既整齐又美观。

效果示例:

使用 Python 管理 Excel 多工作表

在 Excel 中,将数据分类存放在多个工作表中能让结构更清晰。例如,可以为销售、采购、库存等创建不同工作表。本节演示如何 创建、访问和管理多个工作表

from spire.xls import Workbook, ExcelVersionworkbook = Workbook()sheet = workbook.Worksheets[0]
sheet.Name = "销售数据"sheet1 = workbook.Worksheets["Sheet2"]
sheet1.Name = "采购数据"sheet2 = workbook.Worksheets.Add("库存数据")
sheet2.Range["A1"].Value = "产品ID"
sheet2.Range["B1"].Value = "库存数量"
sheet2.Range["A2"].Value = "P001"
sheet2.Range["B2"].NumberValue = 100
sheet2.Range["A3"].Value = "P002"
sheet2.Range["B3"].NumberValue = 50workbook.SaveToFile("output/multi_sheet.xlsx", ExcelVersion.Version2016)

主要方法:

  • Worksheets[Index] – 按索引访问工作表。
  • Worksheets["单元格名称"] – 按单元格名称(如 A1)访问,更直观。
  • Worksheets.Add("名称") – 新增工作表,适合分类存储不同数据。

合理管理多个工作表能让数据更有条理。

生成 Excel 文件效果:

使用 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)

http://www.hskmm.com/?act=detail&tid=13451

相关文章:

  • Ansible的安装和使用
  • 数显LED驱动芯片恒流数码管驱动IC内置显示RAM为816位 VK16D33
  • 详细介绍:【TEC045-KIT】基于复旦微 FMQL45T900 的全国产化 ARM 开发套件
  • 【IEEE出版】2025年智慧物联与电子信息工程国际学术会议(IoTEIE 2025)
  • 9.22 机房练习
  • eslint
  • 视频调色神器!CyberLink ColorDirector:从入门到专业的视频色彩魔法工具
  • Leveraging Context-Aware Prompting for Commit Message Generation 论文笔记
  • P4951 [USACO01OPEN] Earthquake 题解
  • 用ida插件快速审计函数调用
  • 【ACM独立出版|往届已EI、Scopus检索|合作SSCI】第二届数字经济与计算机科学国际学术会议(DECS 2025)
  • schematool -initSchema -dbType mysql
  • PostgreSQL 全表 count 优化实践:从 SeqScan 痛点分析到 heapam 改进与性能突破
  • 第二章习题
  • Lightroom Classic 2025:精细调控,呈现完美画质,专业级数字照片管理与后期处理全解析
  • langfuse从v2.70.1升级到V3.110(异机升级+数据迁移)
  • 20250518_信安一把梭_医院抓取流量
  • tsx 图论选讲
  • OTP绕过漏洞:当后端过度信任前端时的安全灾难
  • 2MHz 8-bit 微控制器 with 64 Pins,M38049FFLKP ADR5040ARTZ TMS320F28062PZT K4AAG165WA-BCTD存储器
  • 实用指南:【Kubernetes】(六)Service
  • 校u圈校园外卖众包任务课表交友CPS社区:一站式校园生态服务系统
  • .NET Polly 全面指南:从5W2H维度深度解析
  • 撒钱岛小游戏管理系统:私域流量变现新选择,趣味与收益双赢
  • Day19构造器详解
  • 多商户的在线客服系统,直接在小程序的商家中嵌入我们的商家聊天链接
  • 【院士报告|EI检索稳定|大连理工大学主办】第四届能源与动力工程国际学术会议(EPE 2025)
  • 多客云 Ai 短视频批量剪辑矩阵系统:高效创作与智能管理的一体化解决方案
  • [ABC077D] Small Multiple 同余最短路
  • 20250509_信安一把梭_黑客