xlsxwriter 是Python的一个第三方库,可以用来生成、修改 Excel 文件,支持多种格式的Excel文件,功能比较强大。下面给出几个实例,演示如何用xlsxwriter输出复杂的xlsx文件。

import xlsxwriter
# 创建一个新的 Excel 文件
workbook = xlsxwriter.Workbook('example.xlsx')
# 添加一个工作表
worksheet = workbook.add_worksheet()
# 设置列宽
worksheet.set_column('A:A', 12)
worksheet.set_column('B:B', 30)
worksheet.set_column('C:C', 20)
worksheet.set_column('D:D', 20)
worksheet.set_column('E:E', 20)
# 设置行高
worksheet.set_row(0, 30)
worksheet.set_row(1, 25)
worksheet.set_row(2, 25)
worksheet.set_row(3, 25)
worksheet.set_row(4, 25)
# 添加单元格格式
header_format = workbook.add_format({'bold': True,
'font_size': 14,
'align': 'center',
'valign': 'vcenter',
'border': 1,
'bg_color': 'yellow'})
title_format = workbook.add_format({'bold': True,
'font_size': 12,
'align': 'center',
'valign': 'vcenter',
'border': 1,
'bg_color': 'gray'})
content_format = workbook.add_format({'bold': False,
'font_size': 10,
'align': 'left',
'valign': 'vcenter',
'border': 1})
# 写入表头
worksheet.merge_range('A1:E1', '报告标题', header_format)
# 写入标题
worksheet.write('A2', '序号', title_format)
worksheet.write('B2', '姓名', title_format)
worksheet.write('C2', '年龄', title_format)
worksheet.write('D2', '性别', title_format)
worksheet.write('E2', '学科', title_format)
# 写入内容
data = [
{'id': 1, 'name': '张三', 'age': 20, 'gender': '男', 'major': '计算机科学'},
{'id': 2, 'name': '李四', 'age': 21, 'gender': '女', 'major': '数学'},
{'id': 3, 'name': '王五', 'age': 22, 'gender': '男', 'major': '物理'},
{'id': 4, 'name': '赵六', 'age': 23, 'gender': '女', 'major': '化学'},
{'id': 5, 'name': '陈七', 'age': 24, 'gender': '男', 'major': '地理'}
]
for i, d in enumerate(data):
row = i + 3
worksheet.write_number(row, 0, d['id'], content_format)
worksheet.write_string(row, 1, d['name'], content_format)
worksheet.write_number(row, 2, d['age'], content_format)
worksheet.write_string(row, 3, d['gender'], content_format)
worksheet.write_string(row, 4, d['major'], content_format)
# 关闭 Excel 文件
workbook.close()
通过上述实例,我们可以看到,xlsxwriter可以完成生成Excel工作表、设置单元格样式、格式、宽度、高度等复杂操作。