news 2026/4/16 13:38:34

使用 Python 写入多类型数据至 Excel 文件

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
使用 Python 写入多类型数据至 Excel 文件

在数据驱动的工作流中,Microsoft Excel 作为广泛使用的电子表格工具,常用于数据存储、分析与报告生成。然而,手动维护和更新 Excel 文件不仅效率低下,还容易引入人为错误。在需要处理大规模数据、生成周期性报表或集成异构系统输出的场景下,自动化方案显得尤为必要。

Python 凭借其丰富的生态系统,在办公自动化领域展现出显著优势。本文将介绍如何使用Free Spire.XLS for Python库,以程序化方式高效、可靠地将多种数据类型写入 Excel 文件,并涵盖格式设置、公式嵌入、图片插入及超链接创建等高级功能。

环境配置与基础用法

安装依赖

确保系统已安装 Python。通过pip安装 Free Spire.XLS for Python:

pipinstallspire.xls.free

基本写入示例

以下代码演示了创建新工作簿、写入单元格内容、应用格式并保存文件的完整流程:

fromspire.xlsimport*workbook=Workbook()sheet=workbook.Worksheets.get_Item(0)# 写入文本sheet.Range["B2"].Value="Hello, Python & Excel!"# 应用格式sheet.Range.AutoFitColumns()sheet.Range.BorderAround(LineStyleType.Medium,Color.get_MediumBlue())sheet.Range.Style.Color=Color.get_LightGray()# 保存并释放资源workbook.SaveToFile("HelloWorld.xlsx",ExcelVersion.Version2016)workbook.Dispose()

写入结果预览:

关键对象说明:

  • Workbook:表示一个 Excel 文件,可通过Workbook()创建工作簿,新建的 Excel 工作簿包含三个默认工作表。
  • Worksheet:通过Worksheets[index]访问具体工作表。
  • Range[cell_ref]:通过 A1 引用或行列索引访问单元格。
  • .Value.NumberValue.DateTimeValue.BooleanValue:分别用于写入不同类型的数据。
  • .SaveToFile():持久化工作簿至指定路径。
  • .Dispose():显式释放底层资源,避免内存泄漏。

多类型数据写入实践

文本与数值

字符串、整数和浮点数可直接赋值。对于数值类型,建议使用NumberValue属性以确保正确识别为数字格式:

sheet.Range["A1"].Value="产品名称"sheet.Range["B1"].Value="销售额"sheet.Range["A2"].Value="笔记本电脑"sheet.Range["B2"].NumberValue=12000sheet.Range["A3"].Value="智能手机"sheet.Range["B3"].NumberValue=8500.75

写入结果预览:

日期与时间

Spire.XLS 支持通过DateTimeValue写入日期时间。需注意其内部使用spire.xls.common.DateTime类型,而非 Python 原生datetime

fromspire.xls.commonimport*importdatetime# 写入当前 UTC 时间sheet.Range["B1"].DateTimeValue=DateTime.get_UtcNow()# 写入指定日期sheet.Range["B2"].DateTimeValue=DateTime.Parse("2023-05-01")# 转换 Python datetime 对象py_time=datetime.datetime(2023,5,1,10,30)time_str=py_time.strftime("%Y-%m-%d %H:%M:%S")sheet.Range["B3"].DateTimeValue=DateTime.Parse(time_str)# 设置显示格式sheet.Range["B1"].Style.NumberFormat="yyyy-mm-dd hh:mm:ss"sheet.Range.AutoFitColumns()

写入结果预览:

布尔值

布尔数据通过BooleanValue属性写入:

sheet.Range["B1"].BooleanValue=Truesheet.Range["B2"].BooleanValue=False

写入结果预览:

列表与元组

批量写入可通过InsertArray方法实现。该方法支持按行或按列插入一维数组:

header=["ID","姓名","年龄"]data=[[1,"张三",30],[2,"李四",25]]# 写入标题(按行)sheet.InsertArray(header,1,1,False)# 逐行写入数据fori,rowinenumerate(data,start=2):forj,valueinenumerate(row,start=1):sheet.Range[i,j].Value=str(value)

写入结果预览:

注意:InsertArray 的第四个参数 is_row 控制插入方向;False 表示按列插入(即横向填充)。该方法仅支持同质的一维数组(如全为字符串或数字)。当列表包含多种类型(如整数、字符串、浮点数混合)时,需通过循环逐项写入,并根据目标单元格的数据语义选择适当的赋值方式(例如使用 .Value = str(x) 统一转为字符串,或分别使用 .NumberValue、.DateTimeValue 等属性以保留类型信息)。

字典列表

将字典列表转换为表格时,通常以键作为列头:

products=[{"ID":"P001","名称":"键盘","价格":199},{"ID":"P002","名称":"鼠标","价格":99}]ifproducts:headers=list(products[0].keys())sheet.InsertArray(headers,1,1,False)forr_idx,iteminenumerate(products,start=2):values=[item[k]forkinheaders]# 当前版本需逐单元格赋值forc_idx,valinenumerate(values,start=1):sheet.Range[r_idx,c_idx].Value=str(val)

写入结果预览:

高级功能

公式写入

Excel 公式可通过Formula属性直接写入,计算由 Excel 客户端完成:

sheet.Range["A1"].NumberValue=10sheet.Range["A2"].NumberValue=20sheet.Range["B1"].Formula="=SUM(A1:A2)"sheet.Range["B2"].Formula="=AVERAGE(A1:A2)"

图片插入

使用Pictures.Add(row, col, image_path)在指定位置插入图像:

sheet.Pictures.Add(3,1,"logo.png")# 可选:调整尺寸与偏移# pic = sheet.Pictures.Add(3, 1, "logo.png")# pic.Width, pic.Height = 100, 50

超链接创建

支持外部 URL 与内部工作表跳转:

# 外部链接cell=sheet.Range[7,1]cell.Text="Python 官网"link=sheet.HyperLinks.Add(cell)link.Address="https://www.python.org"# 内部链接detail_sheet=workbook.Worksheets.Add("详情页")target_cell=detail_sheet.Range["A3"]target_cell.Text="跳转至详情页"internal_link=sheet.HyperLinks.Add(sheet.Range[8,1])internal_link.Address=f"{detail_sheet.Name}!A1"

写入结果预览:

最佳实践

  1. 资源管理:每次操作后调用workbook.Dispose()释放非托管资源。
  2. 异常处理:在生产环境中应使用try...except捕获文件 I/O 或权限错误。
  3. 性能考量:对大规模数据,优先使用InsertArray或区域批量赋值,避免逐单元格写入。
  4. 路径安全:确保输出目录存在且具有写权限,图片路径应为绝对路径或相对于执行环境的有效路径。

结语

Free Spire.XLS for Python 提供了一套完整的 API,支持从基础数据写入到复杂格式控制的各类 Excel 操作。通过程序化方式处理 Excel 文件,可显著提升数据处理效率,降低人工干预风险,适用于报表自动化、数据导出、系统集成等典型业务场景。合理结合其功能与工程实践规范,可构建稳定、可维护的办公自动化解决方案。更多使用 Python 操作 Excel 的技巧,请前往 Spire.XLS for Python 官方教程 查看。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/31 20:36:54

嵌入式音频算法开发中的CMSIS-DSP实战应用

嵌入式音频开发实战:用CMSIS-DSP打造高效低延迟的实时音频系统你有没有遇到过这样的场景?在一款TWS耳机项目中,团队好不容易跑通了语音唤醒算法,结果实测时发现——每处理一帧64点音频就要花1.8ms,而主控MCU是颗Cortex…

作者头像 李华
网站建设 2026/4/6 12:02:37

创意写作辅助:激发无限想象力

创意写作辅助:激发无限想象力 在数字创作日益普及的今天,许多写作者都面临一个共同困境:灵感枯竭、设定遗忘、风格偏移。一部小说的初稿可能激情澎湃,但到了第三章,主角的性格是否还和第一章一致?一个世界观…

作者头像 李华
网站建设 2026/4/10 8:56:19

36、Windows 8 认证与授权管理全解析

Windows 8 认证与授权管理全解析 1. 安全选项配置说明 在安全选项中,并非所有可配置的选项都需要进行设置。例如,如果访客账户处于禁用状态,就没有必要对其进行重命名操作。 2. 以管理员身份运行任务与用户账户控制(UAC) 2.1 UAC 出现的背景 在使用 Windows 8 系统时…

作者头像 李华
网站建设 2026/4/14 18:17:47

43、Windows 8 备份、恢复与高级设置全攻略

Windows 8 备份、恢复与高级设置全攻略 在使用 Windows 8 系统的过程中,我们难免会遇到各种问题,如系统故障、文件丢失、软件安装失败等。为了应对这些情况,我们需要掌握一些备份和恢复的方法,以及一些高级设置和功能。下面将详细介绍这些内容。 1. 备份与恢复基础操作 …

作者头像 李华
网站建设 2026/4/9 15:06:22

混合计费模式:按需+包年包月灵活组合

混合计费模式:按需包年包月灵活组合 在 AI 应用从实验走向生产落地的今天,一个现实问题正摆在开发者和企业架构师面前:如何让大模型系统既跑得稳,又花得少? 许多团队一开始兴致勃勃地部署了本地 LLM 平台&#xff0c…

作者头像 李华
网站建设 2026/4/14 23:24:08

企业级网上蛋糕售卖店管理系统管理系统源码|SpringBoot+Vue+MyBatis架构+MySQL数据库【完整版】

摘要 随着互联网技术的快速发展和电子商务的普及,线上蛋糕售卖行业逐渐成为消费者购买甜点的重要渠道。传统的线下蛋糕店受限于地理位置和营业时间,难以满足现代消费者对便捷性和多样化的需求。企业级网上蛋糕售卖店管理系统的开发旨在解决这一问题&…

作者头像 李华