1.简介:
openpyxl不仅提供了将数据一行列的形式对应到Excel表格中,以及相关的添加,删除,获取等操作; 还提供了将数据进行图形化展示的相关组件(类),包括2D图形和3D图形。
2.举例:
将数据在excel中进行3D图形化展示(例:公司近几年销售额和利润的数据图形化(3D)):
横坐标是各个年份,纵坐标是数据;柱状图时销售额和利润。
相关代码如下:
openxls_3d_chart.py:
# -*- coding: utf-8 -*-
import os
import sys
from openpyxl import Workbook
from openpyxl.chart import BarChart3D, Series, Reference
#初始化Workbook
wb = Workbook(write_only=True)
ws = wb.create_sheet()
#创建数据
rows = [
('', '销售额','利润'),
(2016, 20, 8),
(2017, 30, 12),
(2018, 50, 20),
(2019, 60, 25),
(2020, 70, 35),
(2021, 80, 40),
]
#添加数据到excel
for row in rows:
ws.append(row)
#chart图的生成1
chart1 = BarChart3D()
chart1.title = "近几年营业额/利润对比图"
data = Reference(ws, min_col=2, min_row=1, max_row=7, max_col=3)
titles = Reference(ws, min_col=1, min_row=2, max_row=7)
chart1.add_data(data, titles_from_data=True)
chart1.set_categories(titles)
ws.add_chart(chart1, "A10")
#保存文件
wb.save("bar_3d.xlsx")
运行结果:
python3 openxls_3d_chart.py
生成了 bar_3d.xlsx,文件内容如下:
说明:
(1)BarChart3D:用于创建3D柱状图;
(2)Workbook相关操作:
wb = Workbook(write_only=True)
ws = wb.create_sheet()wb.save("bar_3d.xlsx"):保存excel表格。
3 3D柱状图开发步骤:
第一步,引入BarChart3D, Series, Reference等库:
from openpyxl.chart import BarChart3D, Series, Reference
第二步,创建BarChart3D:
chart1 = BarChart3D()
第三步,设置BarChart3D的参数:
相关参数说明如下:
title:BarChart3D的标题;
add_data(data, titles_from_data=True):参数data是要显示的数据;titles_from_data表示标题是否包含在data中;
set_categories(titles):设置BarChart3D的categories属性;
ws.add_chart(chart1, "A10"):最后,将BarChart3D的图形添加到excel的workbook对象中。