xlsxwriter可能用过的人并不是很多,不过使用后就会感觉,他的功能让你叹服,除了可以按要求生成你所需要的excel外

还可以加上很形象的各种图,比如柱状图、饼图、折线图等。

请看本人生成的:

这里包含了数据公式的计算,插入图片的连接,生成的图表,当然如果你还需要其他的功能,可以继续参考库的文档

下面把源代码贴出来,希望对大家在工作遇到类似的情况,可以直接拿去用。不过转载的时候请注明出处。

 #!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author:Eric.yue import xlsxwriter
import random
from datetime import date
import collections def xlwt_chart(xl_obj,table): #生成柱状图
column_chart = xl_obj.add_chart({'type':'column'})
column_chart.add_series({
'name':'=sheet1!$D$1',
'categories':'=sheet1!$D$2:$D$7',
'values':'=sheet1!$E$2:$E$7'
})
table.insert_chart('G2',column_chart) #生成饼图
column_chart2 = xl_obj.add_chart({'type':'pie'})
column_chart2.add_series({
'name': '=sheet1!$D$1',
'categories':'=sheet1!$D$2:$D$7',
'values': '=sheet1!$E$2:$E$7'
})
table.insert_chart('G20', column_chart2) def xlwt_run():
data_base = ['0-50','50-60','60-70','70-80','80-90','90-100'] #生成一个有序的字典
chart_dict = collections.OrderedDict.fromkeys(data_base,0) xl_obj = xlsxwriter.Workbook('chart.xlsx')
table = xl_obj.add_worksheet('sheet1')
table.write_string(0,0,u'姓名')
table.write_string(0,1,u'成绩')
table.write_string(0,2,u'日期')
table.merge_range('D1:E1', u'成绩分布')
table.set_column('C:E',15) #定义格式
date_format = xl_obj.add_format({'num_format':'yyyy-mm-dd'})
color_format = xl_obj.add_format({'color':'red'})
font_format = xl_obj.add_format({'font_color':'green','bold':True}) mm = 1
for i in xrange(1,40):
name = 'name_%d' % i
score = random.randint(30,100)
if score <= 50:
chart_dict['0-50'] += 1
elif score>50 and score<=60:
chart_dict['50-60'] += 1
elif score>60 and score<=70:
chart_dict['60-70'] += 1
elif score>70 and score<=80:
chart_dict['70-80'] += 1
elif score>80 and score<=90:
chart_dict['80-90'] += 1
else:
chart_dict['90-100'] += 1 if score > 60:
table.write_string(i, 0, name)
table.write_number(i, 1, score)
else:
table.write_string(i, 0, name, color_format)
table.write_number(i, 1, score, color_format) table.write_datetime(i, 2,date.today(), date_format)
mm = mm + 1 #生成图表数据
row = 1
for k,v in chart_dict.items():
table.write_string(row, 3, k, font_format)
table.write_number(row, 4, v, font_format)
row = row+1 xlwt_chart(xl_obj,table)
#使用公式
table.write_formula(mm,1,'=AVERAGE(B2:B40)')
#插入带链接的图片
table.insert_image('D20',r'/home/mywork/pythonchina/cto51_log/bd_logo12.png',{'url':'https://www.baidu.com'}) #关闭excel句柄
xl_obj.close() if __name__ == '__main__':
xlwt_run()

没有使用类写,只是即兴而作。

python xlsxwriter库生成图表的应用的更多相关文章

  1. Python xlsxwriter库 图表Demo

    折线图 import xlsxwriter # 创建一个excel workbook = xlsxwriter.Workbook("chart_line.xlsx") # 创建一个 ...

  2. 使用Python第三方库生成二维码

    本文主要介绍两个可用于生成二维码的Python第三方库:MyQR和qrcode. MyQR的使用: 安装: pip install MyQR 导入: from MyQR import myqr imp ...

  3. 通过python xlsxwriter模块生成EXCEL柱状图、饼图

    xlsxwriter模块不是python自带的,使用pip下载 import xlsxwriter #新建一个excel文件,起名为expense01.xlsx workbook = xlsxwrit ...

  4. python lxml库生成xml文件-节点命名空间问题

    lxml库,处理xml很强大,官方文档:https://lxml.de/tutorial.html#namespaces 例如: 我们要生成如下格式的报文: <ttt:jesson xmlns: ...

  5. 基于Python Pillow库生成随机验证码

    from PIL import Image from PIL import ImageDraw from PIL import ImageFont import random class ValidC ...

  6. 用 python 来操作 docx, xlsx 格式文件(一)(使用 xlsxwriter 库操作xlsx格式文件)

    需要从数据库读取日志生成相应的 docx,xlsx 文件做相应的记录 所以自然要用到docx, xlsxwriter 库 但是这些库的应用场景非常广泛,任何需要对 word,excel 文件执行重复性 ...

  7. python 生成图表

    python写入excel(xlswriter)--生成图表 折线图 # -*- coding:utf-8 -*- import xlsxwriter # 创建一个excel workbook = x ...

  8. 使用Python的库qrcode生成二维码

    现在有很多二维码的生成工具,在线的,或者安装的软件,都可以进行生成二维码.今天我用Python的qrcode库生成二维码.需要预先安装  Image 库 安装 用pip安装 # pip install ...

  9. 使用python库xlsxwriter库来输出各种xlsx文件

    功能性的文章直接用几个最简单的实现表达: xlsxwriter库的核心就是其Workbook对象. 创建一个指定名字的xlsx文件: import xlsxwriter filename = '/Us ...

随机推荐

  1. spring,property not found on type

    刚开始学spring mvc ,遇到这个报错. jsp页面 user 实体类 public class User { private String name; private int age; pri ...

  2. 简单http文件服务器

    日常工作中,主要是通过ssh终端(putty等)远程开发,经常涉及到传输文件,因为本地系统为Win10,所以没办法利用强大的linux脚本来进行文件传输.之前用过python的SimpleHttp模块 ...

  3. Java经典编程题50道之九

    一个数如果恰好等于它的因子之和,这个数就称为"完数".例如6=1+2+3.编程找出1000以内的所有完数. public class Example09 {    public s ...

  4. Redis进阶实践之十三 Redis的Redis-trib.rb文件详解

    一.简介     事先说明一下,本篇文章不涉及对redis-trib.rb源代码的分析,只是从使用的角度来阐述一下,对第一次使用的人来说很重要.redis-trib.rb是redis官方推出的管理re ...

  5. MongoDB入门系列(四):权限管理

    一.概述 本篇文章主要介绍如何创建用户和角色相关概念,同时对角色的添加和删除做了相关介绍. 版本:3.6.2 二.角色相关概念 1.数据库用户角色 read:该角色拥有数据的只读权限,系统集合以及sy ...

  6. C语言_scanf()和getchar() 使用[粗俗易懂]

    原文地址:http://blog.csdn.net/hao5743/article/details/6939661/,以下是我重新整理的以下. 问题描述一:[分析scanf()和getchar()读取 ...

  7. 一个简单清晰的Redis操作类

    <?php /** * redis处理的二次封装 * */ class Redis{ private $_redis; private $_config; public function __c ...

  8. 软AP的实现------hostapd的编译运行

    最近要给摄像头做一个软ap,让手机能够连上这个热点,从而能够与摄像头进行通信. 1.什么是hostapd : hostapd能够使得无线网卡切换为master模式,模拟AP(通常可以认为是路由器)功能 ...

  9. JQuery基础知识学习1

    1.JQuery是javascript的类库 2.下载JQuery 3.导入JQuery <script src="jquery-3.0.0.js"></scri ...

  10. Java常见加密算法

    常见 package com.example.decript; import java.io.UnsupportedEncodingException; import java.security.In ...