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

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

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

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

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

xlsxwriter 可以操作 xls 格式文件

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

Linux 下安装: sudo pip install XlsxWriter

Windows 下安装: pip install XlsxWriter

请看本人生成的:

2018316100250657.jpg?201821610340

2018316100348921.jpg?20182161041

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

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

#!/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()

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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值