国产化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.mzph.cn/news/909503.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Ansible的安装和使用

一、安装 #安装源 # 1.安装 yum install epel-release -y yum install ansible -y# 2.生成公钥 [root@vm01 ~]# ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save the key (/…

运城做网站推广网站的文案

今天安装软件,突然遇到了文件已损坏,扔到废纸篓的情况,于是搜索了下解决办法,跟大家分享下,希望对你有所帮助 一、检查安全性设置 打开【设置】-【隐私与安全】,下拉找到安全性,将安全性更改为…

晋城客运东站网站开发什么nas可以做网站服务器

提供侧边栏可以显示和隐藏的侧边栏容器,通过子组件定义侧边栏和内容区,第一个子组件表示侧边栏,第二个子组件表示内容区。 说明: 该组件从API Version 8开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起…

网站建设培训哪里好网站建设与搜索引擎营销的关系

通常各种编程语言里,都有对应的各种线性代数库,我们可以利用现成的代数库来快速的求解我们想要的结果,也就是说,通过代数库,会让我们可以用更少的代码,更高的效率实现需求,这就是向量化的作用 …

政协机关网站建设wordpress在php什么版本号

BeanPostProcessor 接口是 Spring 框架中的一个扩展接口,用于在 Spring 容器实例化、配置和初始化 bean 的过程中提供自定义的扩展点。通过实现这个接口,您可以在 bean 实例创建的不同生命周期阶段插入自己的逻辑,从而实现对 bean 行为的定制…

网站建设中需求分析说明书国内平面设计公司

纠错码和压缩算法是同一枚硬币的两面。 两者都来自于对冗余的想法。 纠错码被视为向消息或文件中添加冗余的原则性方法。而压缩算法正好相反,他们会从消息或文件中移除冗余。 压缩和纠错并不是彼此抵消的,相反,好的压缩算法会移除抵消冗余&am…

wordpress网站被拒登郑州app拉新项目

能控性定义: 若给定系统的一个初始状态x(t0)(t0可为0),若在t1>t0的有限时间区间[t0,t1]内,存在容许控制u(t)使得x(t1)0,则称系统状态在t0时刻是能控的。 若系统对任意一个初始状态都能控,则…

北京网站设计公司哪家公司好广告营销包括哪些方面

服务器同时连接数突然变高的原因 在服务器运行过程中,我们有时会发现服务器的同时连接数突然变高。这种情况可能会引发一系列问题,如性能下降、资源耗尽等。那么,导致服务器同时连接数突然变高的原因有哪些呢?本文将对此进行探讨…

做设计参考的网站抖音代运营协议

设计模式 创建者模式 前言原来代码使用设计模式总结Builder模式在源码中的应用:其他代码 前言 “对象创建”模式——绕开new 工厂模式 抽象工厂 原型模式 构建器 动机与背景 目前需要建造一个房子,建造房子需要一系列特定的步骤,但是房子的类…

数显LED驱动芯片恒流数码管驱动IC内置显示RAM为816位 VK16D33

VK16D33是一种恒流数码管或点阵LED驱动控制专用芯片,内部集成有数据锁存器、LED恒流驱动模块等电路。可以通过寄存器配置,调节扫描的位数,从而获得更大的单点驱动电流。数据通过I2C通讯接口与MCU通信。SEG脚接LED阳…

详细介绍:【TEC045-KIT】基于复旦微 FMQL45T900 的全国产化 ARM 开发套件

详细介绍:【TEC045-KIT】基于复旦微 FMQL45T900 的全国产化 ARM 开发套件pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family…

【IEEE出版】2025年智慧物联与电子信息工程国际学术会议(IoTEIE 2025)

2025年智慧物联与电子信息工程国际学术会议(IoTEIE 2025)将于2025年10月17-19日在中国青岛举行。【EI/Scopus双检索:IEEE独立出版,检索非常稳定】 【征稿主题范围广,录用率高,2篇可享团队优惠,学生友好】 2025年智…

9.22 机房练习

9.22 机房练习 一、 引子 向 myk 大佬学习,养成写练习笔记的好习惯。 还有大约三十多天就复赛了,我的安排是保持每天一两道首银的题目 + 紫书上的题单,前面的是练习有一定难度的题目冲击高分,后面的是系统复习保持…

完整教程:stm32f103c8t6 led闪灯实验

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

做jsp网站用哪些软件下载农副产品交易平台

苹果自带的“safari浏览器”正在悄悄“追踪”你的信息,这样做可以有效避免你的隐私信息不被泄露。说起苹果设备自带的APP,毫无疑问safari浏览器是其中的代表之一,很多朋友由于习惯的原因,大多在使用苹果设备的时候选择下载一些第三…

cms网站搭建顺德做网站公司哪家好

import os#判断文件夹是否存在 dir os.path.exists(C:\\Users\\Desktop) print(dir:, dir)#判断文件是否存在 file os.path.exists(C:\\Users\\Desktop\\雍正王朝.txt) print(file:, file)运行结果 显示该文件及文件夹都存在

网易云音乐wordpress插件aso安卓优化

目录 1. 前言 2. 用法回顾 2.1 使用方式 2.2 过滤器的定义 2.3 串联过滤器 3. 小结 1. 前言 过滤器在我们日常开发中应该算是一个非常常用的功能了,它经常会被用来格式化模板中的文本。过滤器可以单个使用,也可以多个串联一起使用,还可…

建站空间哪个好棋牌软件开发定制软件

以下是关于DDR4、DDR5、固态硬盘(SSD)和机械硬盘(HDD)在连续读/写、随机读/写性能的对比分析,结合技术特性与应用场景的总结: 一、性能对比表格 存储类型连续读(MB/s)连续写&#x…

无锡网站建设推荐手机分销网站公司

目录HOG是什么?HOG vs SIFTHOG步骤HOG在检测行人中的方式Opencv实现HOGDescriptor的构造函数:行人检测HOGSVM步骤简化版的HOG计算HOG是什么? 方向梯度直方图( Histogram of Oriented Gradient, HOG )特征是一种在计算机视觉和图像处理中用来进…

win2008网站404被称为网页制作三剑客的是

获取/查看本机出口ip curl http://members.3322.org/dyndns/getip