码迷,mamicode.com
首页 > 编程语言 > 详细

004、Python xlsxwriter模块

时间:2018-02-05 23:23:36      阅读:240      评论:0      收藏:0      [点我收藏+]

标签:hello   分享   计算   excel   nts   ksh   class   表示法   使用   

简单用法demo

# !/usr/bin/python
# coding:utf-8
# xlsxwriter的基本用法
import xlsxwriter

# 1. 创建一个Excel文件
workbook = xlsxwriter.Workbook(demo1.xlsx)

# 2. 创建一个工作表sheet对象
worksheet = workbook.add_worksheet()

# 3. 设定第一列(A)宽度为20像素
worksheet.set_column(A:A,20)

# 4. 定义一个加粗的格式对象
bold = workbook.add_format({bold:True})

# 5. 向单元格写入数据
# 5.1 向A1单元格写入‘Hello‘
worksheet.write(A1,Hello)
# 5.2 向A2单元格写入‘World‘并使用bold加粗格式
worksheet.write(A2,World,bold)
# 5.3 向B2单元格写入中文并使用加粗格式
worksheet.write(B2,u中文字符,bold)

# 5.4 用行列表示法(行列索引都从0开始)向第2行、第0列(即A3单元格)和第3行、第0列(即A4单元格)写入数字
worksheet.write(2,0,10)
worksheet.write(3,0,20)

# 5.5 求A3、A4单元格的和并写入A5单元格,由此可见可以直接使用公式
worksheet.write(4,0,=SUM(A3:A4))

# 5.6 在B5单元格插入图片
worksheet.insert_image(B5,./demo.png)

# 5.7 关闭并保存文件
workbook.close()

运行之后生成的Excel文档效果如下:
技术分享图片

 

综合实例demo:绘制网站业务流量数据图表

#!/usr/bin/python
# coding:utf-8
import xlsxwriter

# 创建一个Excel文件
workbook = xlsxwriter.Workbook(chart.xlsx)
# 创建一个工作表sheet对象,使用默认名称:"Sheet1"
worksheet = workbook.add_worksheet()
# 创建一个图表对象
chart = workbook.add_chart({type:column})

# 定义数据表头
title = [u业务名称,u星期一,u星期二,u星期三,u星期四,u星期五,u星期六,u星期日,u平均流量]
# 定义业务名称列表
buname = [u业务官网,u新闻中心,u购物频道,u体育频道,u亲子频道]
# 定义5个频道一周七天的数据列表
data = [
    [150,152,158,149,155,145,148],
    [89,88,95,93,98,100,99],
    [201,200,198,175,170,198,195],
    [75,77,78,78,74,70,79],
    [88,85,87,90,93,88,84]
]

# 定义数据formatter格式对象,设置边框加粗1像素
formatter = workbook.add_format()
formatter.set_border(1)
# 定义标题栏格式对象:边框加粗1像素,背景色为灰色,单元格内容居中、加粗
title_formatter = workbook.add_format()
title_formatter.set_border(1)
title_formatter.set_bg_color(#cccccc)
title_formatter.set_align(center)
title_formatter.set_bold()
# 定义平均值栏数据格式对象:边框加粗1像素,数字按2位小数显示
ave_formatter = workbook.add_format()
ave_formatter.set_border(1)
ave_formatter.set_num_format(0.00)

# 定义图表数据系列函数
def chart_series(cur_row):
    chart.add_series({
        categories:=Sheet1!$B$1:$H$1,
        values:=Sheet1!$B${}:$H${}.format(cur_row,cur_row),
        line:{color:black},
        name:=Sheet1!$A${}.format(cur_row)
    })
    # 注:其中categories表示x轴,values表示y轴,line表示线条样式,name表示图例项

# 下面分别以行和列的方式将标题栏、业务名称、流量数据写入单元格,并引用不同的格式对象
worksheet.write_row(A1,title,title_formatter)
worksheet.write_column(A2,buname,formatter)
# 写入第2到第6行的数据,并将第2~6行数据加入图表系列
for i in range(2,7):
    worksheet.write_row(B{}.format(i),data[i-2],formatter)
    # 计算平均流量栏数据并写入
    worksheet.write_formula(I{}.format(i),=AVERAGE(B{}:H{}).format(i,i),ave_formatter)
    # 将每一行数据加入图表序列
    chart_series(str(i))

# 设置图表大小
chart.set_size({width:577,height:287})
# 设置图表大标题
chart.set_title({name:u业务流量周报表})
# 设置y轴小标题
chart.set_y_axis({name:Mb/s})

# 在A8单元格插入图表
worksheet.insert_chart(A8,chart)

# 关闭Excel文档
workbook.close()

运行之后生成的Excel文档效果如下:
技术分享图片

 

转载自:https://www.cnblogs.com/jiayongji/p/7119059.html

004、Python xlsxwriter模块

标签:hello   分享   计算   excel   nts   ksh   class   表示法   使用   

原文地址:https://www.cnblogs.com/licl11092/p/8419383.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!