學習筆記之xlsx文件操作篇

利用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_p_w_picpath('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_p_w_picpath('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()

  

 最後記得關閉文件  


這是從網上找的一些xlsxwriter的方法

wKioL1mjbSPCaQEDAABLzZhMIvY198.png-wh_50

 小白筆記  如有錯誤請提醒修改!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章