快看看用Python生成Excel炫酷图表,不然你就OUT了

简介: 快看看用Python生成Excel炫酷图表,不然你就OUT了

文章目录


前言


本文对Python 自动化操作Excel并生成图表,做了详细的分析和说明

我们先来看一下python中能操作Excel的常用库对比

image.png

⛳️ 1.xlswriter库


XlsxWriter是一个用来写Excel2007和xlsx文件格式的python模块。它可以用来写文本、数字、公式并支持单元格格式化、图片、图表、文档配置、自动过滤等特性

优点:功能更多、文档高保真、扩展格式类型、更快并可配置

缺点:不能用来读取和修改excel文件

官方文档:xlsxwriter.readthedocs.io/


⛳️ 2.生成折线图

# -*- coding:utf-8 -*-
import xlsxwriter
# 创建一个excel
workbook = xlsxwriter.Workbook("chart_line.xlsx")
# 创建一个sheet
worksheet = workbook.add_worksheet()
# worksheet = workbook.add_worksheet("bug_analysis")
# 自定义样式,加粗
bold = workbook.add_format({'bold': 1})
# --------1、准备数据并写入excel---------------
# 向excel中写入数据,建立图标时要用到
headings = ['Number', 'testA', 'testB']
data = [
    ['2017-9-1', '2017-9-2', '2017-9-3', '2017-9-4', '2017-9-5', '2017-9-6'],
    [10, 40, 50, 20, 10, 50],
    [30, 60, 70, 50, 40, 30],
]
# 写入表头
worksheet.write_row('A1', headings, bold)
# 写入数据
worksheet.write_column('A2', data[0])
worksheet.write_column('B2', data[1])
worksheet.write_column('C2', data[2])
# --------2、生成图表并插入到excel---------------
# 创建一个柱状图(line chart)
chart_col = workbook.add_chart({'type': 'line'})
# 配置第一个系列数据
chart_col.add_series({
    # 这里的sheet1是默认的值,因为我们在新建sheet时没有指定sheet名
    # 如果我们新建sheet时设置了sheet名,这里就要设置成相应的值
    'name': '=Sheet1!$B$1',
    'categories': '=Sheet1!$A$2:$A$7',
    'values':   '=Sheet1!$B$2:$B$7',
    'line': {'color': 'red'},
})
# 配置第二个系列数据
chart_col.add_series({
    'name': '=Sheet1!$C$1',
    'categories':  '=Sheet1!$A$2:$A$7',
    'values':   '=Sheet1!$C$2:$C$7',
    'line': {'color': 'yellow'},
})
# 配置第二个系列数据(用了另一种语法)
# chart_col.add_series({
#     'name': ['Sheet1', 0, 2],
#     'categories': ['Sheet1', 1, 0, 6, 0],
#     'values': ['Sheet1', 1, 2, 6, 2],
#     'line': {'color': 'yellow'},
# })
# 设置图表的title 和 x,y轴信息
chart_col.set_title({'name': 'The xxx site Bug Analysis'})
chart_col.set_x_axis({'name': 'Test number'})
chart_col.set_y_axis({'name':  'Sample length (mm)'})
# 设置图表的风格
chart_col.set_style(1)
# 把图表插入到worksheet并设置偏移
worksheet.insert_chart('A10', chart_col, {'x_offset': 25, 'y_offset': 10})
workbook.close()

image.png

⛳️ 3.生成柱状图

# -*- coding:utf-8 -*-
import xlsxwriter
# 创建一个excel
workbook = xlsxwriter.Workbook("chart_column.xlsx")
# 创建一个sheet
worksheet = workbook.add_worksheet()
# worksheet = workbook.add_worksheet("bug_analysis")
# 自定义样式,加粗
bold = workbook.add_format({'bold': 1})
# --------1、准备数据并写入excel---------------
# 向excel中写入数据,建立图标时要用到
headings = ['Number', 'testA', 'testB']
data = [
    ['2017-9-1', '2017-9-2', '2017-9-3', '2017-9-4', '2017-9-5', '2017-9-6'],
    [10, 40, 50, 20, 10, 50],
    [30, 60, 70, 50, 40, 30],
]
# 写入表头
worksheet.write_row('A1', headings, bold)
# 写入数据
worksheet.write_column('A2', data[0])
worksheet.write_column('B2', data[1])
worksheet.write_column('C2', data[2])
# --------2、生成图表并插入到excel---------------
# 创建一个柱状图(column chart)
chart_col = workbook.add_chart({'type': 'column'})
# 配置第一个系列数据
chart_col.add_series({
    # 这里的sheet1是默认的值,因为我们在新建sheet时没有指定sheet名
    # 如果我们新建sheet时设置了sheet名,这里就要设置成相应的值
    'name': '=Sheet1!$B$1',
    'categories': '=Sheet1!$A$2:$A$7',
    'values':   '=Sheet1!$B$2:$B$7',
    'line': {'color': 'red'},
})
# 配置第二个系列数据(用了另一种语法)
chart_col.add_series({
    'name': '=Sheet1!$C$1',
    'categories':  '=Sheet1!$A$2:$A$7',
    'values':   '=Sheet1!$C$2:$C$7',
    'line': {'color': 'yellow'},
})
# 配置第二个系列数据(用了另一种语法)
# chart_col.add_series({
#     'name': ['Sheet1', 0, 2],
#     'categories': ['Sheet1', 1, 0, 6, 0],
#     'values': ['Sheet1', 1, 2, 6, 2],
#     'line': {'color': 'yellow'},
# })
# 设置图表的title 和 x,y轴信息
chart_col.set_title({'name': 'The xxx site Bug Analysis'})
chart_col.set_x_axis({'name': 'Test number'})
chart_col.set_y_axis({'name':  'Sample length (mm)'})
# 设置图表的风格
chart_col.set_style(1)
# 把图表插入到worksheet以及偏移
worksheet.insert_chart('A10', chart_col, {'x_offset': 25, 'y_offset': 10})
workbook.close()

image.png

⛳️ 4.生成饼图

# -*- coding:utf-8 -*-
import xlsxwriter
# 创建一个excel
workbook = xlsxwriter.Workbook("chart_pie.xlsx")
# 创建一个sheet
worksheet = workbook.add_worksheet()
# 自定义样式,加粗
bold = workbook.add_format({'bold': 1})
# --------1、准备数据并写入excel---------------
# 向excel中写入数据,建立图标时要用到
data = [
    ['closed', 'active', 'reopen', 'NT'],
    [1012, 109, 123, 131],
]
# 写入数据
worksheet.write_row('A1', data[0], bold)
worksheet.write_row('A2', data[1])
# --------2、生成图表并插入到excel---------------
# 创建一个柱状图(pie chart)
chart_col = workbook.add_chart({'type': 'pie'})
# 配置第一个系列数据
chart_col.add_series({
    'name': 'Bug Analysis',
    'categories': '=Sheet1!$A$1:$D$1',
    'values': '=Sheet1!$A$2:$D$2',
    'points': [
        {'fill': {'color': '#00CD00'}},
        {'fill': {'color': 'red'}},
        {'fill': {'color': 'yellow'}},
        {'fill': {'color': 'gray'}},
    ],
})
# 设置图表的title 和 x,y轴信息
chart_col.set_title({'name': 'Bug Analysis'})
# 设置图表的风格
chart_col.set_style(10)
# 把图表插入到worksheet以及偏移
worksheet.insert_chart('B10', chart_col, {'x_offset': 25, 'y_offset': 10})
workbook.close()

image.png


⛳️ 5.实战拓展

xlswriter新建并写入Excel
# 3.6.2 xlswriter新建并写入Excel
def fun3_6_2():
    # 创建Exce并添加sheet
    workbook = xlsxwriter.Workbook('demo.xlsx')
    worksheet = workbook.add_worksheet()
    # 设置列宽
    worksheet.set_column('A:A', 20)
    # 设置格式
    bold = workbook.add_format({'bold': True})
    # 添加文字内容
    worksheet.write('A1', 'Hello')
    # 按格式添加内容
    worksheet.write('A2', 'World', bold)
    # 写一些数字
    worksheet.write(2, 0, 123)
    worksheet.write(3, 0, 123.456)
    # 添加图片
    worksheet.insert_image('B5', 'demo.png')
    workbook.close()

image.png


目录
相关文章
|
10天前
|
Python
办公自动化-Python如何提取Word标题并保存到Excel中?
办公自动化-Python如何提取Word标题并保存到Excel中?
24 2
|
2天前
|
TensorFlow 语音技术 算法框架/工具
Python 潮流周刊#51:用 Python 绘制美观的图表
探索 Python 精彩:从 Streamlit 的交互式图表到 TensorFlow 的衰落,深入学习项目如 parlertts 和 FunClip,以及 Python 资源,包括 UXsim 交通模拟和 The-Python-Graph-Gallery。提升技能,紧跟 Python 周刊,打造竞争优势。[[1](https://xiaobot.net/p/python_weekly)] [[9](https://xiaobot.net/p/python_weekly)]
|
2天前
|
SQL 人工智能 自然语言处理
Python 潮流周刊#52:Python 处理 Excel 的资源
探索Python精彩:文章涵盖正则、代码恢复、PEP新规范、轻量级打包、在线开发、动态生成GitHub README、自定义linting、代码转图片等。项目资源包括Excel处理、虚拟环境管理、Tensor谜题、依赖注入框架、Web应用转换、AI自动化测试、语法高亮、BI模型查询及Python监控库。在当前环境下,持续学习提升竞争力,Python Weekly提供丰富的学习资源,助力技术精进和职业发展。
|
5天前
|
数据采集 数据挖掘 数据处理
Python数据分析实战:使用Pandas处理Excel文件
Python数据分析实战:使用Pandas处理Excel文件
74 0
|
16天前
为Excel操碎了心 | 图表篇
为Excel操碎了心 | 图表篇
18 0
|
16天前
|
数据采集 数据挖掘 关系型数据库
Excel计算函数(计算机二级)(1),2024年最新2024Python架构面试指南
Excel计算函数(计算机二级)(1),2024年最新2024Python架构面试指南
|
18天前
|
机器学习/深度学习 人工智能 自然语言处理
Python转换Excel到Markdown
Python转换Excel到Markdown
14 0
|
18天前
|
Python
python如何读取excel文件,并修改内容?
python如何读取excel文件,并修改内容?
33 0
|
18天前
|
存储 数据采集 数据可视化
Python列表到Excel表格第一列的转换技术详解
Python列表到Excel表格第一列的转换技术详解
16 0
|
18天前
|
存储 数据处理 索引
Python操作Excel常用方法汇总
Python操作Excel常用方法汇总
190 0