码迷,mamicode.com
首页 > 其他好文 > 详细

学习笔记之xlsx文件操作篇

时间:2017-08-23 21:37:32      阅读:215      评论:0      收藏:0      [点我收藏+]

标签:excel   python   xlsxwriter   

利用python3进行xlsx文件的简单操作


模块:xlsxwriter

环境:centos/Linux


1、创建excel文件

2、创建sheet表

3、开始书写sheet表的正文


先来一串代码压压惊

#############建立xlsx文件并写入数据 图片################

import xlsxwriter

workbook = xlsxwriter.Workbook(‘/home/1.xlsx‘)         #建立一张1.xlsx表
worksheet = workbook.add_worksheet(‘渗透报告‘)   #在1.xlsx表中建立一个名为渗透报告的表

worksheet.set_column(‘A:D‘, 20)           #设置A到D的横向宽度为各为20(set_row设置纵向)              

worksheet.write(‘A1‘,‘Hello‘)             #在 A1 表中写入 Hello
worksheet.write(‘A2‘,‘World‘)           

worksheet.write(‘B2‘,‘你好‘)                               
worksheet.write(2,0,32)                #在第二行第零列写入数字 32
worksheet.write(3,0,32.2)               #在第三行第零列写入数字 32.2
worksheet.write(4,0,‘=SUM(A3:A4)‘)           #在第四行第零列写入A3+A4的值

worksheet.insert_image(‘B5‘,‘./baidu.png‘)       #在B5中添加图片./baidu.png
workbook.close()                                        #关闭1.xlsx表


#xlsxwriter模块的一些操作方法:


#普通操作

 xlsxwriter.Workbook(‘excel文件名‘)           #创建excel文件

 workbook.add_worksheet(‘表名’)            #创建sheet表  默认表名为sheet

 worksheet.write(‘A1‘,‘Hello‘)              #在A1单元格写入‘Hello‘字符串

 worksheet.write(2,0,32)                  #在第二行第零列写入数字32

 worksheet.write_row(‘A1‘,title,format)        #从A1横向写入title以format格式 

                                   #这里title为变量 可以是列表或字母等

 worksheet.write_column(‘A2‘,webname,format)     #从A2纵向写入webname以format格式

                                   #这里webname为变量 可以是列表或字母等

 worksheet.write_formula(‘I‘+cur_row,‘=AVERAGE(B‘+cur_row+‘:H‘+cur_row+‘)‘,format_ave)

                                   #write_formula() 写公式

 worksheet.insert_image(‘B5‘,‘./baidu.png‘)      #在B5中添加图片baidu.png   ./b表示当前文件夹
 workbook.close()                        #关闭文件

 


#表格操作 

 workbook.add_format([properties])      #用于创建一个新的格式对象,参数 [properties]为                              指定一个格式属性的字典

                             如:bold = workbook.add_format( { ‘bold‘ : True } )

 #同样也可以这样

 format = workbook.add_format()        #创建自定义格式对象   (格式如下)

 format.set_border(1)               #设定边界宽度为1

 format.set_bg_color(‘#cccccc‘)        #设置背景颜色为#ccccccc

 format.set_align(‘center‘)           #设置对齐方式为 剧中 

 format.set_bold()                 #设置为粗体

 format.set_num_format(‘0.00‘)         #设置数字格式为保留两个小数


#图标操作 

 workbook.add_chart({‘type‘:‘column‘})              #建立图表   类型:柱状图

 chart.add_series({

        ‘categories‘: ‘=Sheet1!$B$1:$H$1‘,          #类别为sheet1表中B1:H1

        ‘values‘ : ‘=Sheet1!$B$‘+cur_row+‘:$H$‘+cur_row, #值为‘B‘+cur_row:‘H‘+cur_row

        ‘line‘ : {‘color‘ : ‘black‘},             #线条 黑色

        ‘name‘ : ‘Sheet1!$A$‘+cur_row,             #名字为‘A‘+cur_row  cur_row是变量 

         })


 chart.set_size({‘width‘ : 577,‘height‘ : 288})   #设置图表的高与宽

 chart.set_title({‘name‘ :‘智游网站业务周报‘})    #设置图表名称

 chart.set_y_axis({‘name‘ : ‘Mb/s‘})          #设置图表 y轴的名称

 worksheet.insert_chart(‘A10‘,chart)          #插入图表位置 在A10格


###################如果你还不懂  看看下面的代码######################

################  建立xlsx文件  并生成图表文件  ##############
#coding: utf-8
import xlsxwriter

workbook = xlsxwriter.Workbook(‘./2.xlsx‘)
worksheet = workbook.add_worksheet()                  
chart = workbook.add_chart({‘type‘:‘column‘})         #建立图标   类型:柱状图

title = [‘网站名称‘,‘星期一‘,‘星期二‘,‘星期三‘,‘星期四‘,‘星期五‘,‘星期六‘,‘星期日‘,‘平均流量‘]
webname = [‘网站1‘,‘网站2‘,‘网站3‘]

data = [
    [150,152,158,149,155,145,148],
    [2111,222,120,10,333,11,59292],
    [999,111,222,111,333,44,111],
]

format = workbook.add_format()            #创建自定义样式对象
format.set_border(1)                  #设定边界宽度为1

format_title = workbook.add_format()         #建立一个format_title样式(样式内容如下)
format_title.set_border(1)               #设置边界宽度为 1
format_title.set_bg_color(‘#cccccc‘)           #设置背景颜色为#ccccccc
format_title.set_align(‘center‘)            #设置对齐方式为 剧中
format_title.set_bold()                 #设置为粗体

format_ave = workbook.add_format()            
format_ave.set_border(1)
format_ave.set_num_format(‘0.00‘)            #设置数字为两位小数

worksheet.write_row(‘A1‘,title,format_title)          #从A1横向写入title以format_title格式
worksheet.write_column(‘A2‘,webname,format)           #从A2纵向写入webname以format格式
worksheet.write_row(‘B2‘,data[0],format)           #从B2横向写入data[0]以foemat格式
worksheet.write_row(‘B3‘,data[1],format)
worksheet.write_row(‘B4‘,data[2],format)

def chart_series(cur_row):
    worksheet.write_formula(‘I‘+cur_row,‘=AVERAGE(B‘+cur_row+‘:H‘+cur_row+‘)‘,format_ave)
    
    chart.add_series({
        ‘categories‘: ‘=Sheet1!$B$1:$H$1‘,
        ‘values‘ : ‘=Sheet1!$B$‘+cur_row+‘:$H$‘+cur_row,
        ‘line‘ : {‘color‘ : ‘black‘},
        ‘name‘ : ‘Sheet1!$A$‘+cur_row,
    })



for row in range(2,5):
    chart_series(str(row))

chart.set_size({‘width‘ : 577,‘height‘ : 288})
chart.set_title({‘name‘ :‘某网站业务周报‘})
chart.set_y_axis({‘name‘ : ‘Mb/s‘})

worksheet.insert_chart(‘A10‘,chart)
workbook.close()

  

 最后记得关闭文件  


 小白笔记  如有错误请提醒修改!

学习笔记之xlsx文件操作篇

标签:excel   python   xlsxwriter   

原文地址:http://dongxiaoyang.blog.51cto.com/12624314/1958547

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