👉 项目官网:https://www.python-office.com/ 👈

github star

大家好,这里是程序员晚枫,正在all in AI编程实战

每次做汇报都要手动画图表?

今天教你怎么用 python-office 自动生成 Excel 图表

1、快速生成柱状图

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
import office

data = [
['姓名', '销售额'],
['张三', 100000],
['李四', 120000],
['王五', 80000],
['赵六', 150000]
]

# 生成带图表的Excel
office.excel.chart(
path='销售图表.xlsx',
data=data,
chart_type='bar' # 柱状图
)

2、生成折线图

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
import office

data = [
['月份', '销售额', '成本'],
['1月', 50000, 30000],
['2月', 60000, 35000],
['3月', 55000, 32000],
['4月', 70000, 40000]
]

office.excel.chart(
path='趋势图.xlsx',
data=data,
chart_type='line', # 折线图
title='2024年销售趋势'
)

3、生成饼图

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import office

data = [
['产品', '占比'],
['产品A', 35],
['产品B', 25],
['产品C', 20],
['产品D', 20]
]

office.excel.chart(
path='占比图.xlsx',
data=data,
chart_type='pie' # 饼图
)

4、设置图表样式

1
2
3
4
5
6
7
8
9
10
11
12
13
import office

office.excel.chart(
path='美化图表.xlsx',
data=data,
chart_type='bar',
title='销售数据', # 图表标题
color='blue', # 颜色主题
show_legend=True, # 显示图例
show_value=True, # 显示数值
width=15, # 宽度(厘米)
height=10 # 高度(厘米)
)

5、实战案例:自动生成月度报表图表

每月自动生成带图表的报表:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
import office
import os
from datetime import date

def generate_monthly_report(year, month):
"""生成月度报表"""
today = date.today()
filename = f'{year}{month}月报表.xlsx'

# 读取当月数据
df = office.excel.read(path=f'{year}-{month}-data.xlsx')

# 创建包含数据和图表的工作簿
sheets = {
'数据': df.values.tolist(),
'图表': df.values.tolist()
}

# 生成图表
office.excel.chart(
path=filename,
data=sheets['图表'],
chart_type='bar',
title=f'{year}{month}月数据',
color='green'
)

print(f'报表已生成: {filename}')

# 生成本月报表
generate_monthly_report(2024, 1)

6、实战案例:批量生成多张图表

为每个产品生成一张单独的图表:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import office
import os

def generate_product_charts(folder):
"""为每个产品生成图表"""
# 读取汇总数据
df = office.excel.read(path='产品汇总.xlsx')

os.makedirs('产品图表', exist_ok=True)

for product in df['产品名称'].unique():
product_data = df[df['产品名称'] == product]

filename = f'产品图表/{product}趋势.xlsx'
office.excel.chart(
path=filename,
data=product_data.values.tolist(),
chart_type='line',
title=f'{product}销售趋势'
)

print(f'已生成: {filename}')

generate_product_charts('数据文件夹')

7、常见问题

Q:图表位置不对?

A:可以用 position 参数指定位置:

1
office.excel.chart(path='chart.xlsx', data=data, position='C5')

Q:想要组合图(柱状+折线)?

A:用 chart_type='combo' 可以创建组合图。

8、下讲预告

学会了图表生成,下一讲我们学 Word高级:批量生成合同

敬请期待!


有问题欢迎加微信 python-office 进群交流~

程序员晚枫专注AI编程培训,小白看完他和图灵社区合作的教程《30讲 · AI编程训练营》就能上手做AI项目。

🎓 AI 编程实战课程

想系统学习 AI 编程?程序员晚枫的 AI 编程实战课 帮你从零上手!