XlsxWriter:用 Python 生成真正的 Excel 文件

XlsxWriter 在 GitHub 上已经拿到 3,948 Star。

这是一个专门用来生成 Excel 2007+ XLSX 格式文件的 Python 模块。如果你需要把数据导出成 Excel,又不想依赖 COM 接口或者在服务器上安装 Office,这就是个直接可用的方案。它支持 Python 3.8 以上版本和 PyPy3,整个实现基于标准库,没有额外的系统依赖。

1、它能做什么

XlsxWriter 的核心能力很明确:用纯 Python 写出标准的 .xlsx 文件。

它支持文本、数字、公式、超链接写入多个工作表,也支持格式设置、合并单元格、命名区域、图表、自动筛选、数据验证、下拉列表、条件格式、图片插入、富文本、批注、文本框、宏等一整套 Excel 功能。同时兼容 Pandas 和 Polars,方便把数据框直接输出为格式化的电子表格。对于财务报告、数据汇总、运营报表这类常见需求,这些功能基本覆盖了大部分格式要求。

正文顶部截图

2、为什么选它

Python 里操作 Excel 的库不少,但很多是兼顾读写的通用方案。XlsxWriter 只专注于写,并且把这件事做得很完整。

它生成的文件是 100% 兼容 Excel 的 XLSX,不需要调用外部程序。支持 Python 3.8+ 和 PyPy3,只用标准库,部署时没有额外依赖。对于需要生成大量数据的场景,它还提供了内存优化模式,可以在占用较少内存的情况下写出大文件。这个特性在生成万行级别的报表时比较实用,不会因为内存问题导致服务卡死。

README区域截图

3、基础用法

安装:

pip install XlsxWriter

一个最简单的示例:

import xlsxwriter

workbook = xlsxwriter.Workbook("demo.xlsx")
worksheet = workbook.add_worksheet()

worksheet.set_column("A:A", 20)
bold = workbook.add_format({"bold": True})

worksheet.write("A1", "Hello")
worksheet.write("A2", "World", bold)
worksheet.write(2, 0, 123)
worksheet.write(3, 0, 123.456)
worksheet.insert_image("B5", "logo.png")

workbook.close()

几行代码就能创建一个带格式、带图片的 Excel 文件。实际项目中,你可以把数据库查询结果、分析数据按工作表组织,再套上自定义样式导出。工作簿、工作表、格式对象的设计和 Excel 本身的概念对应,上手成本不高。

4、适合哪些场景

  • 需要在服务器端批量生成报表的后端开发
  • 数据分析师给业务方导出结构化 Excel 文件
  • 需要复杂格式、图表、图片混合的自动化文档输出
  • 用 Pandas 或 Polars 时需要更精细控制导出样式的场景
  • 需要无头环境下稳定生成 Excel,不希望引入 Office 运行时的项目

完整文档在 xlsxwriter.readthedocs.io,更新日志也在同一站点维护。

ffice 运行时的项目

完整文档在 xlsxwriter.readthedocs.io,更新日志也在同一站点维护。

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐