news 2026/8/22 10:47:12

使用 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/8/7 2:43:52

双因素认证2FA:增加一道安全防线

双因素认证2FA:增加一道安全防线 在企业级AI系统逐渐成为组织信息中枢的今天,一个看似简单的登录框背后,可能藏着成千上万份敏感文档、客户数据和内部知识资产。以 anything-llm 为代表的私有化AI知识库平台,正被广泛用于构建智能…

作者头像 李华
网站建设 2026/8/3 12:46:44

基于Spark和协同过滤的婴幼儿产品的推荐系统大数据分析源码设计与文档

前言在母婴电商精细化运营需求下,传统婴幼儿产品推荐存在 “精准度低、冷启动明显、数据处理效率差” 的痛点,基于 Spark 协同过滤算法构建的推荐系统,适配家长用户、母婴商家、平台运营人员等角色,实现用户画像建模、行为数据分…

作者头像 李华
网站建设 2026/8/21 18:55:06

错题本智能归纳:针对性强化训练

错题本智能归纳:针对性强化训练 在传统学习场景中,整理错题往往意味着重复抄写、机械分类和低效复盘。学生面对堆积如山的试卷,常常陷入“错了再错”的循环——明明已经订正过,下次换种问法还是不会。教师也难以逐一追踪每个学生的…

作者头像 李华
网站建设 2026/8/1 6:17:46

40、深入解析Windows系统更新管理与性能监控优化

深入解析Windows系统更新管理与性能监控优化 1. Windows更新管理策略配置 在管理组织内计算机的Windows更新时,如果不将每台PC配置为自动下载和安装更新,管理过程可能会变得复杂。比如,需要阻止不良更新在环境中安装,这在大型组织中,尤其是拥有自定义应用程序或多样化硬件…

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

44、Windows系统保护与恢复全攻略

Windows系统保护与恢复全攻略 1. 系统恢复介质准备 在Windows系统的维护中,拥有系统恢复光盘是一项重要的预防措施。由于Windows 8可以通过USB介质快速安装和配置,且实际安装介质可充当系统修复盘,因此创建几张包含Windows 8安装文件的USB磁盘是明智之举。这样,帮助台工作…

作者头像 李华
网站建设 2026/8/22 4:48:40

【2025最新】基于SpringBoot+Vue的学生网上选课系统管理系统源码+MyBatis+MySQL

摘要 随着信息技术的快速发展,教育管理信息化已成为高校管理的重要组成部分。传统的学生选课方式存在效率低、信息不对称、管理复杂等问题,亟需一种高效、便捷的在线选课系统来优化流程。网上选课系统能够实现学生自主选课、课程信息实时更新、教师管理…

作者头像 李华