首页
学习
活动
专区
圈层
工具
发布

用Python生成Excel报表利器:XlsxWriter实用指南

在日常办公中,Excel 报表是必不可少的,但手动生成复杂的报表不仅费时费力,还容易出错。今天我们要介绍的 XlsxWriter 库,可以让你用 Python 高效生成美观的 Excel 报表,支持多种图表和格式设置,适合需要定期制作报表的办公人员。

1. XlsxWriter的优势

XlsxWriter 是一个专门用于生成 Excel .xlsx 文件的 Python 库,特点如下:

丰富的格式支持:支持字体、颜色、边框、对齐方式等多种格式。

图表生成:支持折线图、柱状图、饼图等多种图表类型。

工作表操作:可以添加多个工作表、插入图片、设置条件格式等。

多功能报表生成:非常适合生成包含数据、图表、格式化的专业报表。

2. 安装 XlsxWriter

首先,确保已安装 XlsxWriter:

pip install XlsxWriter

安装完成后,你就可以开始使用 XlsxWriter 生成格式化的 Excel 文件。

3. 基础操作:创建和写入Excel文件

我们来创建一个简单的 Excel 文件,并添加一些数据。

示例代码

import xlsxwriter

# 创建一个新工作簿

workbook = xlsxwriter.Workbook('简单报表.xlsx')

worksheet = workbook.add_worksheet('销售数据')

# 写入数据

worksheet.write('A1', '产品')

worksheet.write('B1', '销量')

products = ['产品 A', '产品 B', '产品 C']

sales = [120, 150, 100]

for row, (product, sale) in enumerate(zip(products, sales), start=1):

worksheet.write(row, 0, product)

worksheet.write(row, 1, sale)

# 关闭工作簿

workbook.close()

执行后,将生成一个包含产品及其销量数据的 Excel 文件,表头为“产品”和“销量”。

4. 丰富的格式设置

XlsxWriter 支持多种格式,下面我们来设置一些字体、颜色和边框,使 Excel 文件更加美观。

示例:添加格式化样式

workbook = xlsxwriter.Workbook('格式化报表.xlsx')

worksheet = workbook.add_worksheet('数据')

# 设置表头格式

header_format = workbook.add_format({

'bold': True,

'font_color': 'white',

'bg_color': '#4CAF50',

'border': 1,

'align': 'center'

})

# 设置数据格式

data_format = workbook.add_format({'border': 1})

# 写入表头并应用格式

worksheet.write('A1', '产品', header_format)

worksheet.write('B1', '销量', header_format)

# 写入数据并应用格式

products = ['产品 A', '产品 B', '产品 C']

sales = [120, 150, 100]

for row, (product, sale) in enumerate(zip(products, sales), start=1):

worksheet.write(row, 0, product, data_format)

worksheet.write(row, 1, sale, data_format)

workbook.close()

通过这种格式设置,我们可以让 Excel 报表更加整齐、易读。header_format 设置了加粗、白色字体、绿色背景等样式,数据部分则设置了边框,方便阅读。

5. 添加图表

数据表格往往还需要图表来展示数据趋势。XlsxWriter 支持多种图表类型,接下来我们添加一个柱状图,显示产品的销量分布。

示例:插入柱状图

workbook = xlsxwriter.Workbook('图表报表.xlsx')

worksheet = workbook.add_worksheet('数据')

chart_sheet = workbook.add_chart({'type': 'column'})

# 写入数据

worksheet.write_row('A1', ['产品', '销量'])

worksheet.write_column('A2', ['产品 A', '产品 B', '产品 C'])

worksheet.write_column('B2', [120, 150, 100])

# 创建柱状图

chart = workbook.add_chart({'type': 'column'})

chart.add_series({

'name': '销量',

'categories': '=数据!$A$2:$A$4',

'values': '=数据!$B$2:$B$4',

'fill': {'color': '#4CAF50'}

})

# 设置图表标题和标签

chart.set_title({'name': '产品销量分布'})

chart.set_x_axis({'name': '产品'})

chart.set_y_axis({'name': '销量'})

# 将图表插入工作表

worksheet.insert_chart('D2', chart)

workbook.close()

生成的 Excel 文件中,将包含一个柱状图,展示“产品 A”、“产品 B”、“产品 C”的销量分布。图表添加了标题、x 轴和 y 轴标签,便于理解。

6. 条件格式:高亮数据

条件格式可以帮助我们快速识别特定的数据。例如,我们可以高亮销量大于100的产品数据。

示例:添加条件格式

workbook = xlsxwriter.Workbook('条件格式报表.xlsx')

worksheet = workbook.add_worksheet('数据')

# 写入数据

worksheet.write_row('A1', ['产品', '销量'])

worksheet.write_column('A2', ['产品 A', '产品 B', '产品 C'])

worksheet.write_column('B2', [120, 150, 90])

# 添加条件格式

worksheet.conditional_format('B2:B4', {

'type': 'cell',

'criteria': '>=',

'value': 100,

'format': workbook.add_format({'bg_color': '#FFEB3B', 'bold': True})

})

workbook.close()

生成的 Excel 文件中,销量大于等于100的单元格将被高亮显示,帮助我们快速识别出高销量的产品。

7. 🧩 XlsxWriter的其他实用功能

插入图片:支持 PNG、JPEG 等格式的图片插入。

多工作表支持:可以在一个文件中添加多个工作表。

数据有效性:可以设置数据的输入限制,如下拉菜单。

批注和超链接:支持在单元格中添加批注和链接。

8. 应用示例:自动生成月度销售报表

以下是一个自动生成月度销售报表的示例,包括格式化、图表和条件格式等元素。

import xlsxwriter

# 创建新工作簿

workbook = xlsxwriter.Workbook('月度销售报表.xlsx')

worksheet = workbook.add_worksheet('销售数据')

# 写入标题和数据

header_format = workbook.add_format({'bold': True, 'bg_color': '#1E88E5', 'font_color': 'white', 'align': 'center'})

worksheet.write_row('A1', ['产品', '销量'], header_format)

data = [('产品 A', 130), ('产品 B', 90), ('产品 C', 180)]

for row, (product, sales) in enumerate(data, start=1):

worksheet.write(row, 0, product)

worksheet.write(row, 1, sales)

# 添加条件格式

worksheet.conditional_format('B2:B4', {

'type': 'data_bar',

'bar_color': '#FF6F00'

})

# 添加图表

chart = workbook.add_chart({'type': 'column'})

chart.add_series({

'name': '销量',

'categories': '=销售数据!$A$2:$A$4',

'values': '=销售数据!$B$2:$B$4',

})

chart.set_title({'name': '月度产品销量分布'})

worksheet.insert_chart('D2', chart)

# 关闭文件

workbook.close()

此代码将生成一个格式化良好的 Excel 报表,包括数据条图表和条件格式,适合用于展示月度销售数据。

9. 总结

XlsxWriter 是生成高质量 Excel 报表的利器,适合各种报表需求。无论是简易数据表,还是带有条件格式和图表的复杂报表,XlsxWriter 都能让你得心应手。如果你的日常工作涉及大量 Excel 报表,可以尝试用 Python 和 XlsxWriter 提高效率,生成自动化的专业报表。

  • 发表于:
  • 原文链接https://page.om.qq.com/page/OrCdZjNlbkUBPxTDt9mlSxQg0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。
领券