Python xlsxwriter模块详解:从基础写入到高级样式配置

晚来风
晚来风
发布时间:2026-10-15 | 3人浏览过
原创

本文详细介绍Python中xlsxwriter模块的使用方法,涵盖从安装导入、创建工作簿与单元格数据写入,到字体、边框、背景色等样式配置。重点讲解write系列方法、图片插入、图表生成及大文件constant memory模式优化,同时指出其不支持读取和旧版xls格式的局限性,帮助开发者高效处理Excel文件。

首先进行模块安装。

pip install xlsxwriter

安装完成后,在代码文件中直接导入该模块,并运行测试以确认是否存在潜在BUG。

import xlsxwriter

从模块名称即可推断其功能,该模块专门用于向Excel文件中写入数据,且仅支持Excel 2007及以上版本(.xlsx格式)。

模块基本使用方法

接下来演示一个标准操作流程,即创建Excel文件并向其中写入数据:

import xlsxwriter

# 创建工作簿
workbook = xlsxwriter.Workbook('测试.xlsx')
# 添加工作表
worksheet = workbook.add_worksheet()

# 写入hello world 到 A1 单元格
worksheet.write('A1', 'Hello World')

# 关闭Excel文件
workbook.close()

代码执行逻辑包括:创建工作簿对象、添加工作表,以及将数据写入指定的单元格坐标。

写入带有样式的更多数据

上述示例展示了最基础的应用场景,实际使用中我们可以扩展功能,添加丰富的单元格样式。

代码中已包含详细注释,建议结合注释内容辅助理解学习。

import xlsxwriter
# 创建工作簿
workbook = xlsxwriter.Workbook('测试.xlsx')
# 创建工作表
worksheet = workbook.add_worksheet('测试Sheet')
# 设置单一列宽度
worksheet.set_column('A:A', 20)
# 设置加粗样式
bold = workbook.add_format({'bold': True})
# 写入数据 A1
worksheet.write('A1', 'Hello')
# 写入数据 A2
worksheet.write('A2', 'world', bold)
# 写入数据 B1
worksheet.write('B1', u'世界你好')
workbook.close()

上表中介绍的控制列宽的函数 set_column() ,此外还有以下相关函数可供扩展学习:

  • worksheet.set_column("A:B", 15):根据列字母范围设置区域列宽;
  • worksheet.set_column("0:1", 15):根据数字索引更新列宽度;
  • worksheet.set_row(1, 30):设置特定行的行高。

其他样式扩展配置

上文仅演示了加粗样式,开发者还可以对其他样式属性进行个性化配置。

# 设置列头样式
head_format = workbook.add_format({
    'bold': True,                   # 字体加粗
    'border': 1,                    # 单元格边框宽度
    'align': 'left',                # 对齐方式
    'valign': 'vcenter',            # 字体对齐方式
    'fg_color': '#03A9F4',          # 单元格背景颜色
    'font_size': 12                 # 字体大小
})

除了整体格式配置外,也可以通过对象方法链式设置样式,配置完成后的用法是在 worksheet.write() 方法调用时传入该格式对象作为参数。

workfomat = workbook.add_format()
workfomat.set_bold(1)  # 设置加粗
workfomat.set_border(1)  # 设置边框
workfomat.set_num_format('0.00')  # 格式化数据格式为小数点后两位
workfomat.set_align('center')  # 设置水平对齐方式
workfomat.set_bg_color('#ff0000')  # 设置单元格前景色
# 设置加粗样式
bold = workbook.add_format({'bold': True})
# 写入数据 A1
worksheet.write('A1', 'Hello', workfomat)

xlsxwriter 中的 write 方法详解

除了基础的write()方法外,该模块还提供了多种扩展写入方法,具体如下:

  • write_string():用于写入字符串数据;
  • write_number():用于写入数字数据;
  • write_blank():将带有格式的空白字符写入工作表单元格,仅保留单元格样式而不显示内容。
  • write_formula():用于写入Excel公式;
  • write_datetime():用于写入时间日期数据;
  • write_boolean():用于写入布尔值数据;
  • write_url():用于写入超链接。

还有更多未在此罗列的方法,可参考下图所示:

若希望在工作表中插入图片,可参考以下代码实现:

# 插入图片,参数1为单元格,参数2为图片地址
worksheet.insert_image('B2','cup_PNG2001.png')

xlsxwriter 关闭文件操作

完成对Excel文件的所有操作后,务必记得关闭文件以释放资源,代码如下:

workbook.close()

其他需要了解的高级方法

xlsxwriter 模块还包含一些辅助函数,在实际编码中常能提高效率。

  • write_row(row, col, data, cell_format=None):用于按行写入数据;
  • write_column(row, col, data, cell_format=None):用于按列写入数据;
  • insert_textbox(row, col, text, options=None):用于在单元格位置插入文本框;
  • insert_chart(row, col, chart, options=None):用于插入图表;
  • activate():用于设置当前活跃的工作表;
  • merge_range(first_row, first_col, last_row,last_col,data, cell_format=None):用于合并多个单元格;
  • conditional_format(first_row, first_col, last_row, last_col,options=None):用于设置条件格式。

xlsxwriter 模块的优缺点分析

优点

写入功能非常全面,除基本设置外,还支持字体、前景色、背景色、边框、单元格合并、公式、单元格注释、行高及列宽等详细设置。

xlsxwriter支持大文件写入,在数据量特别大的情况下,可以启用 constant memory 模式,从而启动逐行即时写入功能,避免将全部数据一次性加载到内存中,降低内存占用。

缺点

不支持读取和修改 Excel 文件,从模块命名即可得知,xlsxwriter 专注于数据写入,因此不具备读取现有Excel文件的功能。

不支持XLS文件,xlsxwriter 无法创建后缀为 .xls 的旧版Excel文件。

到此这篇关于python处理excel文件之xlsxwriter 模块的文章就介绍到这了,更多相关 xlsxwriter 模块内容请搜索本站以前的文章或继续浏览下面的相关文章希望大家以后多多支持本站!

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表