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

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

请看本人生成的:

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

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

 1 #!/usr/bin/env python
 2 # -*- coding:utf-8 -*-
 3 # Author:Eric.yue
 4
 5 import xlsxwriter
 6 import random
 7 from datetime import date
 8 import collections
 9
10 def xlwt_chart(xl_obj,table):
11
12     #生成柱状图
13     column_chart = xl_obj.add_chart({'type':'column'})
14     column_chart.add_series({
15         'name':'=sheet1!$D$1',
16         'categories':'=sheet1!$D$2:$D$7',
17         'values':'=sheet1!$E$2:$E$7'
18     })
19     table.insert_chart('G2',column_chart)
20
21     #生成饼图
22     column_chart2  = xl_obj.add_chart({'type':'pie'})
23     column_chart2.add_series({
24         'name': '=sheet1!$D$1',
25         'categories':'=sheet1!$D$2:$D$7',
26         'values': '=sheet1!$E$2:$E$7'
27     })
28     table.insert_chart('G20', column_chart2)
29
30
31 def xlwt_run():
32     data_base = ['0-50','50-60','60-70','70-80','80-90','90-100']
33
34     #生成一个有序的字典
35     chart_dict = collections.OrderedDict.fromkeys(data_base,0)
36
37     xl_obj = xlsxwriter.Workbook('chart.xlsx')
38     table = xl_obj.add_worksheet('sheet1')
39     table.write_string(0,0,u'姓名')
40     table.write_string(0,1,u'成绩')
41     table.write_string(0,2,u'日期')
42     table.merge_range('D1:E1', u'成绩分布')
43     table.set_column('C:E',15)
44
45     #定义格式
46     date_format = xl_obj.add_format({'num_format':'yyyy-mm-dd'})
47     color_format = xl_obj.add_format({'color':'red'})
48     font_format = xl_obj.add_format({'font_color':'green','bold':True})
49
50     mm = 1
51     for i in xrange(1,40):
52         name = 'name_%d' % i
53         score = random.randint(30,100)
54         if score <= 50:
55             chart_dict['0-50'] += 1
56         elif score>50 and score<=60:
57             chart_dict['50-60'] += 1
58         elif score>60 and score<=70:
59             chart_dict['60-70'] += 1
60         elif score>70 and score<=80:
61             chart_dict['70-80'] += 1
62         elif score>80 and score<=90:
63             chart_dict['80-90'] += 1
64         else:
65             chart_dict['90-100'] += 1
66
67         if score > 60:
68             table.write_string(i, 0, name)
69             table.write_number(i, 1, score)
70         else:
71             table.write_string(i, 0, name, color_format)
72             table.write_number(i, 1, score, color_format)
73
74         table.write_datetime(i, 2,date.today(), date_format)
75         mm = mm + 1
76
77     #生成图表数据
78     row = 1
79     for k,v in chart_dict.items():
80         table.write_string(row, 3, k, font_format)
81         table.write_number(row, 4, v, font_format)
82         row = row+1
83
84     xlwt_chart(xl_obj,table)
85     #使用公式
86     table.write_formula(mm,1,'=AVERAGE(B2:B40)')
87     #插入带链接的图片
88     table.insert_image('D20',r'/home/mywork/pythonchina/cto51_log/bd_logo12.png',{'url':'https://www.baidu.com'})
89
90     #关闭excel句柄
91     xl_obj.close()
92
93 if __name__ == '__main__':
94     xlwt_run()

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

转载于:https://www.cnblogs.com/gide/p/8575249.html

python xlsxwriter库生成图表的应用相关推荐

  1. python qrcode库生成二维码的代码

    如下内容内容是关于python qrcode库生成二维码的内容,希望能对各位有所用. import qrcode img = qrcode.make('Some data here')高级用法impo ...

  2. python 用 xlwings 库 生成图表

    在官方文档里找不到具体怎么生成图表,和一些参数设置. 这里自己整理了一下. import xlwings as xwapp = xw.App() wb = app.books.active sht = ...

  3. 使用python 处理表格生成图表_教你用Python自动读取数据生成图表,产生的效益很可观...

    厌烦了每次都要在Excel里拖动数据来生成图形吧,这篇文章里,教你用Python自动读取Excel数据生成图表,然后Python 使用XlsxWriter模块在Excel工作表中绘制带有数据表的柱形图 ...

  4. python api文档生成二维码_使用Python第三方库生成二维码

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

  5. python 邮件中生成图表_60秒一口Python:147个demo,助你从新手小白步步进阶编程高手...

    人生苦短,编程苦手,不妨学起Python,感受一飞冲天的快乐. 不要害怕学习的过程枯燥无味,这里有程序员jackzhenguo打造的一份中文Python"糖果包":147个代码小样 ...

  6. python random库生成伯努利随机数的方法_详解Python基础random模块随机数的生成

    随机数参与的应用场景大家一定不会陌生,比如密码加盐时会在原密码上关联一串随机数,蒙特卡洛算法会通过随机数采样等等.Python内置的random模块提供了生成随机数的方法,使用这些方法时需要导入ran ...

  7. python random库生成伯努利随机数的方法_Python使用random模块生成随机数操作实例详解...

    本文实例讲述了Python使用random模块生成随机数操作.分享给大家供大家参考,具体如下: 今天在用Python编写一个小程序时,要用到随机数,于是就在网上查了一下关于Python生成各种随机数的 ...

  8. python标准库生成随机数_Python3标准库:random伪随机数生成器

    1. random伪随机数生成器 random模块基于Mersenne Twister算法提供了一个快速伪随机数生成器.原来开发这个生成器是为了向蒙特卡洛模拟生成输入,Mersenne Twister ...

  9. python调用报表制作工具_工作汇报神技!用Python三步生成带有图表的word报表

    最近在项目中做了一个生成并导出word报表的功能,在这里分享给大家. 经过查看ESPC原有的生成报表代码和网上查阅的一些方法,解决方案的思路如下: 1.利用pychartdir库生成图表,保存图片,转 ...

最新文章

  1. AI十年进阶:一段算法能力演进的历史
  2. 监控 线程 php,Linux平台PHP5.4设置FPM线程数量的方法
  3. java学习(11):Java数据类型转换
  4. js 正则表达式实现文本验证
  5. 作者:刘勇,山东农业大学教授、博士生导师。
  6. java调用javascript函数_使用Java程序中的参数调用Javascript函数
  7. struct interface_GCTT | 接受 interface 参数,返回 struct 在 go 中意味着什么
  8. 第一次作业:深入源码分析进程模型
  9. 网站后台输入密码错误
  10. 【Labplus 3】Scratch获取角色造型的数量
  11. 人的肢体语言个人总结
  12. 独立思考者的思考模型
  13. SQL Server 数据库实验课第九周——第六章总结
  14. Matlab中抽象类和类成员
  15. 7-5 构建矩阵 (10分)
  16. SAND-MATIC 质押池将停用
  17. IDEA查看maven依赖关系的方法
  18. 威联通QNAP Nas同步复制文件到另外一台NAS
  19. PowerBI基础——第二天 最强大的引擎calculate、筛选表calculatetable、高级筛选器filter
  20. oracle语句块begin的好处,sql – 如何从Oracle中的declare / begin / end块返回行?

热门文章

  1. 联想拯救者r720适合java么_联想拯救者R720重装Win10系统的正确姿势
  2. 关于微信小程序A 与 微信小程序B 之间的跳转问题
  3. 深圳市科技创新委员会关于印发《深圳市科学技术奖四类奖项实施细则》的通知
  4. 国防科大计算机学院考博试卷,2017年国防科技大学考博英语真题
  5. Windows10 -64 安装tensorflow遇到的:cuda安装后找不到安装文件目录
  6. solidity的投票示例代码
  7. 华为b6手环能升级鸿蒙吗,华为手环B6,终于等到你!两年磨一剑的升级,亮点多多!...
  8. 蓝海卓越计费管理系统漏洞学习——download.php 任意文件读取漏洞
  9. 人工智能将改变教育的未来:让我们变得更聪明
  10. BZOJ 2095 [Poi2010]Bridges 二分 最大流(混合图欧拉回路)