python接入excel_python之Excel可视化操作

近段时间由于工作中需要对一些数据的整理和可视化显示,故记下使用python操作Excel可视化操作,方便后续查阅。

一、数据导入Excel

Demo:#!/usr/bin/env python

# -*- coding: utf-8 -*-

# @File Name: python_excel.py

# @Time : 2019/7/25

# @Author : zhong

# @Blog : https://www.jianshu.com/search?q=keitwo&page=1&type=note

# @QQ交流 : 3227456102

import xlsxwriter # 导入模块

workbook = xlsxwriter.Workbook('7月生活消费.xlsx') # 新建excel表

worksheet = workbook.add_worksheet('消费表') # 新建sheet(sheet的名称为"sheet1")

headings = ['Number', '交通费', '伙食费','通讯费'] # 设置表头

data = [

['2019-7-1', '2019-7-2', '2019-7-3', '2019-7-4', '2019-7-5', '2019-7-6'],

[10, 40, 50, 20, 10, 50],

[30, 60, 70, 50, 40, 30],

[100,50,150,50,100,50],

] # 自己造的数据

worksheet.write_row('A1', headings)

worksheet.write_column('A2', data[0])

worksheet.write_column('B2', data[1])

worksheet.write_column('C2', data[2]) # 将数据插入到表格中

worksheet.write_column('C2', data[3])

workbook.close() # 将excel文件保存关闭,如果没有这一行运行代码会报错

运行结果:

二、给数据添加格式和汇总

Demo:#!/usr/bin/env python

# -*- coding: utf-8 -*-

# @File Name: python_excel.py

# @Time : 2019/7/25

# @Author : zhong

# @Blog : https://www.jianshu.com/search?q=keitwo&page=1&type=note

# @QQ交流 : 3227456102

# 导入模块

import xlsxwriter

# 新建excel表

workbook = xlsxwriter.Workbook('7月生活消费.xlsx')

# 新建sheet(sheet的名称为"消费表")

worksheet = workbook.add_worksheet('消费表')

# 设置表头

headings = ['Number', '交通费', '伙食费','通讯费']

# 自己造的数据

data = [

('2019-7-1', '2019-7-2', '2019-7-3', '2019-7-4', '2019-7-5', '2019-7-6'),

(10, 40, 50, 20, 10, 50),

(30, 60, 70, 50, 40, 30),

(100,50,150,50,100,50),

]

worksheet.write_row('A1', headings)

# 添加全局格式

bold =workbook.add_format({'bold':True})

money = workbook.add_format({'num_format':'$#,##0'})

# 添加表头附带格式

# worksheet.write('B2','交通费',bold)

# worksheet.write('C2','伙食费',bold)

# worksheet.write('D2','通讯费',bold)

# 将数据插入到表格中

worksheet.write_column('A2', data[0])

worksheet.write_column('B2', data[1])

worksheet.write_column('C2', data[2])

worksheet.write_column('D2', data[3])

col = 0

# 添加一列求和计数

worksheet.write(col,4,'总消费',bold)

worksheet.write(col+1,4,'=SUM(B2+C2+D2)',money)

worksheet.write(col+2,4,'=SUM(B3+C3+D3)',money)

worksheet.write(col+3,4,'=SUM(B4+C4+D4)',money)

worksheet.write(col+4,4,'=SUM(B5+C5+D5)',money)

worksheet.write(col+5,4,'=SUM(B6+C6+D6)',money)

worksheet.write(col+6,4,'=SUM(B7+C7+D7)',money)

# 将excel文件保存关闭,如果没有这一行运行代码会报错

workbook.close()

运行结果:

三、可视化图表

线性图标Demo:#!/usr/bin/env python

# -*- coding: utf-8 -*-

# @File Name: python_excel.py

# @Time : 2019/7/25

# @Author : zhong

# @Blog : https://www.jianshu.com/search?q=keitwo&page=1&type=note

# @QQ交流 : 3227456102

# 导入模块

import xlsxwriter

# 新建excel表

workbook = xlsxwriter.Workbook('7月生活消费.xlsx')

# 新建sheet(sheet的名称为"消费表")

worksheet = workbook.add_worksheet('消费表')

# 设置表头

headings = ['Number', '交通费', '伙食费','通讯费']

# 自己造的数据

data = [

('7月', '8月', '9月', '10月', '11月', '12月'),

(10, 40, 50, 20, 10, 50),

(30, 60, 70, 50, 40, 30),

(100,50,150,50,100,50),

]

worksheet.write_row('A1', headings)

# 添加全局格式

bold =workbook.add_format({'bold':True})

money = workbook.add_format({'num_format':'$#,##0'})

worksheet.write_column('A2', data[0]) # 将数据插入到表格中

worksheet.write_column('B2', data[1])

worksheet.write_column('C2', data[2])

worksheet.write_column('D2', data[3])

# --------2、生成图表并插入到excel---------------

# 创建一个柱状图(line chart)

chart_col = workbook.add_chart({'type': 'line'})

# 配置第一个系列数据

chart_col.add_series({

# 我们新建sheet时设置了sheet名,这里就要设置成相应的值

'name': '=消费表!$B$1',

'categories': '=消费表!$A$2:$A$7',

'values': '=消费表!$B$2:$B$7',

'line': {'color': 'red'},

})

# 配置第二个系列数据

chart_col.add_series({

'name': '=消费表!$C$1',

'categories': '=消费表!$A$2:$A$7',

'values': '=消费表!$C$2:$C$7',

'line': {'color': 'yellow'},

})

# 配置第二个系列数据(用了另一种语法)

# chart_col.add_series({

# 'name': ['消费表', 0, 2],

# 'categories': ['消费表', 1, 0, 6, 0],

# 'values': ['消费表', 1, 2, 6, 2],

# 'line': {'color': 'yellow'},

# })

# 配置第三个系列数据

chart_col.add_series({

'name': '=消费表!$D$1',

'categories': '=消费表!$A$2:$A$7',

'values': '=消费表!$D$2:$D$7',

'line': {'color': 'blue'},

})

# 设置图表的title 和 x,y轴信息

chart_col.set_title({'name': '下半年消费情况表'})

chart_col.set_x_axis({'name': '月份'})

chart_col.set_y_axis({'name': '价格(元)'})

# 设置图表的风格

chart_col.set_style(1)

# 把图表插入到worksheet并设置偏移

worksheet.insert_chart('A10', chart_col, {'x_offset': 25, 'y_offset': 10})

# col = 0

# # 添加一列求和计数

# worksheet.write(col,4,'总消费',bold)

# worksheet.write(col+1,4,'=SUM(B2+C2+D2)',money)

# worksheet.write(col+2,4,'=SUM(B3+C3+D3)',money)

# worksheet.write(col+3,4,'=SUM(B4+C4+D4)',money)

# worksheet.write(col+4,4,'=SUM(B5+C5+D5)',money)

# worksheet.write(col+5,4,'=SUM(B6+C6+D6)',money)

# worksheet.write(col+6,4,'=SUM(B7+C7+D7)',money)

# 将excel文件保存关闭,如果没有这一行运行代码会报错

workbook.close()

运行结果:

柱状图Demo:

只需要更改如下一行代码即可:# 创建一个柱状图(line chart)

# chart_col = workbook.add_chart({'type': 'line'})

# 创建一个柱状图(column cahrt)

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

运行结果:

柱状图+线性图叠加显示Demo:#!/usr/bin/env python

# -*- coding: utf-8 -*-

# @File Name: python_excel.py

# @Time : 2019/7/25

# @Author : zhong

# @Blog : https://www.jianshu.com/search?q=keitwo&page=1&type=note

# @QQ交流 : 3227456102

# 导入模块

import xlsxwriter

# 新建excel表

workbook = xlsxwriter.Workbook('7月生活消费.xlsx')

# 新建sheet(sheet的名称为"消费表")

worksheet = workbook.add_worksheet('消费表')

# 设置表头

headings = ['Number', '交通费', '伙食费','通讯费']

# 自己造的数据

data = [

('7月', '8月', '9月', '10月', '11月', '12月'),

(10, 40, 50, 20, 10, 50),

(30, 60, 70, 50, 40, 30),

(100,50,150,50,100,50),

]

worksheet.write_row('A1', headings)

# 添加全局格式

bold =workbook.add_format({'bold':True})

money = workbook.add_format({'num_format':'$#,##0'})

worksheet.write_column('A2', data[0]) # 将数据插入到表格中

worksheet.write_column('B2', data[1])

worksheet.write_column('C2', data[2])

worksheet.write_column('D2', data[3])

# --------2、生成图表并插入到excel---------------

# 创建一个柱状图(line chart)

line_chart = workbook.add_chart({'type': 'line'})

# 创建一个柱状图(column cahrt)

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

# 配置第一个系列数据

line_chart.add_series({

# 我们新建sheet时设置了sheet名,这里就要设置成相应的值

'name': '=消费表!$B$1',

'categories': '=消费表!$A$2:$A$7',

'values': '=消费表!$B$2:$B$7',

'line': {'color': 'red'},

})

# 配置第二个系列数据

line_chart.add_series({

'name': '=消费表!$C$1',

'categories': '=消费表!$A$2:$A$7',

'values': '=消费表!$C$2:$C$7',

'line': {'color': 'yellow'},

})

# 配置第二个系列数据(用了另一种语法)

# chart_col.add_series({

# 'name': ['消费表', 0, 2],

# 'categories': ['消费表', 1, 0, 6, 0],

# 'values': ['消费表', 1, 2, 6, 2],

# 'line': {'color': 'yellow'},

# })

# 配置第三个系列数据

line_chart.add_series({

'name': '=消费表!$D$1',

'categories': '=消费表!$A$2:$A$7',

'values': '=消费表!$D$2:$D$7',

'line': {'color': 'blue'},

})

# 设置图表的title 和 x,y轴信息

line_chart.set_title({'name': '下半年消费情况表'})

line_chart.set_x_axis({'name': '月份'})

line_chart.set_y_axis({'name': '价格(元)'})

# 设置图表的风格

line_chart.set_style(1)

# 把图表插入到worksheet并设置偏移

# worksheet.insert_chart('A10', line_chart, {'x_offset': 25, 'y_offset': 10})

"""------------------------------------------------------柱状图---------------------------------"""

# 创建一个柱状图(column chrt)a

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

# 配置第一个系列数据

column_chart.add_series({

# 我们新建sheet时设置了sheet名,这里就要设置成相应的值

'name': '=消费表!$B$1',

'categories': '=消费表!$A$2:$A$7',

'values': '=消费表!$B$2:$B$7',

'line': {'color': 'red'},

})

# 配置第二个系列数据

column_chart.add_series({

'name': '=消费表!$C$1',

'categories': '=消费表!$A$2:$A$7',

'values': '=消费表!$C$2:$C$7',

'line': {'color': 'yellow'},

})

# 配置第二个系列数据(用了另一种语法)

# column_chart.add_series({

# 'name': ['消费表', 0, 2],

# 'categories': ['消费表', 1, 0, 6, 0],

# 'values': ['消费表', 1, 2, 6, 2],

# 'line': {'color': 'yellow'},

# })

# 配置第三个系列数据

column_chart.add_series({

'name': '=消费表!$D$1',

'categories': '=消费表!$A$2:$A$7',

'values': '=消费表!$D$2:$D$7',

'line': {'color': 'blue'},

})

# 设置图表的title 和 x,y轴信息

column_chart.set_title({'name': '下半年消费情况表'})

column_chart.set_x_axis({'name': '月份'})

column_chart.set_y_axis({'name': '价格(元)'})

# 设置图表的风格

column_chart.set_style(1)

# 把图表插入到worksheet并设置偏移

worksheet.insert_chart('A10', column_chart, {'x_offset': 25, 'y_offset': 10})

# 柱状图和线性图叠加一起显示

column_chart.combine(line_chart)

# col = 0

# # 添加一列求和计数

# worksheet.write(col,4,'总消费',bold)

# worksheet.write(col+1,4,'=SUM(B2+C2+D2)',money)

# worksheet.write(col+2,4,'=SUM(B3+C3+D3)',money)

# worksheet.write(col+3,4,'=SUM(B4+C4+D4)',money)

# worksheet.write(col+4,4,'=SUM(B5+C5+D5)',money)

# worksheet.write(col+5,4,'=SUM(B6+C6+D6)',money)

# worksheet.write(col+6,4,'=SUM(B7+C7+D7)',money)

# 将excel文件保存关闭,如果没有这一行运行代码会报错

workbook.close()

运行结果:

资料:xlsxwrite其他图标制作示例见https://pandas-xlsxwriter-charts.readthedocs.io/chart_examples.html

https://www.cnblogs.com/lizm166/p/9449261.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值