python xlsxwriter库生成图表的应用示例

 更新时间:2018年03月16日 10:04:11   作者:北京流浪儿  
这篇文章主要介绍了python xlsxwriter库生成图表的应用示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

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

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

xlsxwriter 基本用法,创建 xlsx 文件并添加数据

官方文档:http://xlsxwriter.readthedocs.org/  

xlsxwriter 可以操作 xls 格式文件

注意:xlsxwriter 只能创建新文件,不可以修改原有文件。如果创建新文件时与原有文件同名,则会覆盖原有文件

Linux 下安装: sudo pip install XlsxWriter

Windows 下安装: pip install XlsxWriter

请看本人生成的:

 

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

下面把源代码贴出来,希望对大家在工作遇到类似的情况,可以直接拿去用。

#!/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的Jenkins接口调用方式

    python的Jenkins接口调用方式

    这篇文章主要介绍了python的Jenkins接口调用方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-05-05
  • Python开发之Nginx+uWSGI+virtualenv多项目部署教程

    Python开发之Nginx+uWSGI+virtualenv多项目部署教程

    这篇文章主要介绍了Python系列之-Nginx+uWSGI+virtualenv多项目部署教程,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-05-05
  • 解决django跨域的问题小结(Hbuilder X)

    解决django跨域的问题小结(Hbuilder X)

    使用Django开发时,可能会遇到跨域问题,尤其是当后端与HbuilderX开发的前端结合使用时,解决此问题的关键步骤包括安装django-cors-headers库,并在Django的settings.py中进行相应配置,本文给大家介绍解决django跨域的问题小结,感兴趣的朋友一起看看吧
    2024-10-10
  • Python实现获取操作系统版本信息方法

    Python实现获取操作系统版本信息方法

    这篇文章主要介绍了Python实现获取操作系统版本信息方法,本文在命令行中获取操作系统信息,介绍了platform模块的使用,需要的朋友可以参考下
    2015-04-04
  • Django权限设置及验证方式

    Django权限设置及验证方式

    这篇文章主要介绍了Django权限设置及验证方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-05-05
  • Python中关于字符串对象的一些基础知识

    Python中关于字符串对象的一些基础知识

    这篇文章主要介绍了详解Python中的字符串对象,关于字符串的操作和特性是Python学习当中的基础知识,需要的朋友可以参考下
    2015-04-04
  • python实现ROA算子边缘检测算法

    python实现ROA算子边缘检测算法

    这篇文章主要为大家详细介绍了python实现ROA算子边缘检测算法,以光学图像为例,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-04-04
  • python中sklearn的pipeline模块实例详解

    python中sklearn的pipeline模块实例详解

    这篇文章主要介绍了python中sklearn的pipeline模块的相关知识,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-05-05
  • Windows安装Python、pip、easy_install的方法

    Windows安装Python、pip、easy_install的方法

    这篇文章主要介绍了Windows安装Python、pip、easy_install的方法,需要的朋友可以参考下
    2017-03-03
  • Python实现PDF转为Excel的示例讲解

    Python实现PDF转为Excel的示例讲解

    这篇文章主要为大家详细介绍了在Python中将PDF表格转换为Excel文件的解决方案,文中的示例代码简洁易懂,感兴趣的小伙伴可以跟随小编一起学习一下
    2023-11-11

最新评论