python XlsxWriter模塊建立aexcel表格

https://blog.csdn.net/qq_41030861/article/details/82148777html

安裝使用pip install XlsxWriter來安裝,Xlsxwriter用來建立excel表格,功能很強大,下面具體介紹:python

1.簡單使用excel的實例:數組

 

 

#coding:utf-8app

 

import xlsxwriter測試

 

workbook = xlsxwriter.Workbook('d:\\suq\\test\\demo1.xlsx') #建立一個excel文件字體

worksheet = workbook.add_worksheet('TEST') #在文件中建立一個名爲TEST的sheet,不加名字默認爲sheet1url

 

worksheet.set_column('A:A',20) #設置第一列寬度爲20像素.net

bold = workbook.add_format({'bold':True}) #設置一個加粗的格式對象excel

 

worksheet.write('A1','HELLO') #在A1單元格寫上HELLOcode

worksheet.write('A2','WORLD',bold) #在A2上寫上WORLD,而且設置爲加粗

worksheet.write('B2',U'中文測試',bold) #在B2上寫上中文加粗

 

worksheet.write(2,0,32) #使用行列的方式寫上數字32,35,5

worksheet.write(3,0,35.5) #使用行列的時候第一行起始爲0,因此2,0表明着第三行的第一列,等價於A4

worksheet.write(4,0,'=SUM(A3:A4)') #寫上excel公式

 

worksheet.insert_image('B5','f:\\1.jpg') #插入一張圖片

 

workbook.close()

 

2.經常使用方法說明

1.Workbook類

Workbook類建立一個XlsxWriter的Workbook對象,表明整個電子表格文件,存儲到磁盤上.

add_worksheet():用來建立工做表,默認爲sheet1

add_format():建立一個新的格式對象來格式化單元格,例如bold=workbook.add_format({'bold':True})

還能夠使用set_bold,例如:bold=workbook.add_format()      bold.set_bold()

 

#border:邊框,align:對齊方式,bg_color:背景顏色,font_size:字體大小,bold:字體加粗

top = workbook.add_format({'border':1,'align':'center','bg_color':'cccccc','font_size':13,'bold':True})

add_chart(options):建立一個圖表對象,內部是使用insert_chart()方法來實現的,options(dict類型)爲圖表指定一個字典屬性

close():關閉文件

 

2.Worksheet類

worksheet表明一個Excel的工做表,是XlsxWriter的核心,下面是幾個核心方法

write(row,col,*args):寫普通數據到工做表的單元格,row行座標,col列座標,起始都是以0開始,*args爲寫入的內容,能夠是字符串,文字,公式等,writer方法已經做爲其它更具體數據類型方法的別名

write_string():寫入字符串類型,worksheet.write_string(0,0,'your text')

write_number():寫入數字類型,worksheet.write_number('A2',1.1)

write_blank():寫入空類型數據,worksheet.write_blank('A2',None)

wirte_formula():寫入公式類型,worksheet.write_formula(2,0,'=SUM(B1:B5))

write_datetime():寫入日期類型數據,worksheet.write_datetime(7,0,datetime.datetime.strptime('2014-01-02','%Y-%m-%d),workbook.add_format({'num_format':'yyyy-mm-dd'}));

write_boolean():寫入邏輯類數據,worksheet.write_boolean(0,0,True)

write_url():寫入超連接類型數據,worksheet.write_url('A1','ftp://www.python.org')

write_column():寫入到一列,後面接一個數組

wirte_row():寫入到一行,後面接一個數組

 

set_row(row,height,cell_format,options):此方法設置行單元格的屬性,row指定行位置,height指定高度,單位是像素,cell_format指定格式對象,參數options設置hiddeen(隱藏),level(組合分級),collapsed(摺疊,例如:

cell_format=workbook.add_format({'bold':True})

worksheet.set_row(0,40,cell_format)    設置第一行高40,加粗

set_column(first_col,last_col,width,cell_format,options):設置列單元格的屬性,具體參數說明如上.worksheet.set_column(0,1,10)  worksheet.set_column('C:D',20)

insert_image(row,col,image[,options]):此方法是插入圖片到指定單元格

例如插入一個圖片的超連接爲www.python.org

worksheet.insert_image('B5','f:\\1.jpg',{'url':'http://www.python.org'})

 

3.Chart類

Chart類實現XlsxWriter模塊中的圖標組件的基類,支持的圖表類型包括面積,條形圖,柱形圖,折形圖,餅圖,散點圖,股票和雷達. 一個圖表對象是經過Workbook的add_chart方法建立,經過{type,'圖表類型'}字典參數指定圖表的類型,語句以下:

chart = workbook.add_chart({type,'column'})    #建立一個column圖表

更多圖表類型說明:

area:建立一個面積樣式的圖表;

bar:建立一個條形樣式的圖表;

column:建立一個柱形樣式的圖表;

line:建立一個線條樣式的圖表

pie:建立一個餅圖樣式的圖表

scatter:建立一個散點樣式的圖表

stock:建立一個股票樣式的圖表;

radar:建立一個雷達央視的圖表

 

而後經過insert_chart()方法插入到指定的位置,語句以下:

worksheet.insert_chart('A7',chart)

 

chart.add_series(options)方法,做用是添加一個數據系列到圖表,參數options(dict類型)設置圖表系列選項的字典,操做示例以下:

chart.add_series({

'categories':'=Sheet1!$A$$1:$A$5',

'values':'=Sheet1!$A$$1:$A$5',

'line':={'color':'red'}

})

 

categories,values,line最爲經常使用,categories做用是設置圖表類別標籤範圍;values是設置圖表數據範圍,line爲設置圖表線條屬性,包括顏色寬度等.

 

set_x_axis(options):設置圖表X軸選項,例如:

chart.set_x_axis({

'name':'EARNING per quarter',

'name_font':{'size':14,'bold':True},

'num_font':{'italic':True}

})

set_size(options):設置圖表的大小,如

chart.set_size({'width':720,'height':576})

set_title(options):設置標題,如chart.set_title({'name':'TEST TITLE'}

set_style(style_id):設置圖表樣式,

set_table(options):設置x軸爲數據表格式

 

下面是一個建立文件系統使用率的實例:

 

#coding:utf-8

 

import xlsxwriter

 

workbook = xlsxwriter.Workbook('d:\\suq\\test\\demo1.xlsx') #建立一個excel文件

worksheet = workbook.add_worksheet('sheet1') #在文件中建立一個sheet

#border:邊框,align:對齊方式,bg_color:背景顏色,font_size:字體大小,bold:字體加粗 

top=workbook.add_format({'border':6,'align':'center','bg_color':'cccccc','font_size':13,'bold':True}) #設置單元格格式

title=[u'文件系統',u'總容量',u'使用大小',u'剩餘大小'] #設置第一行標題信息

buname=['/dev/mapper/vg_basic-lv_root','tmpfs','/dev/sda1'] #設置左邊第一排信息

 

worksheet.write_row('A1',title,top)

worksheet.write_column('A2',buname,top)

worksheet.set_column('A:D',40) #A到D列設置寬度,寬度設置必須是整列設置,高度必須是整行設置

#worksheet.set_row(0,40) #設置第一行高度爲40像素

format_data=workbook.add_format({'align':'center','font_size':13}) #設置單元格格式

 

data=[[17678,4393,12388],[9768,8900,868],[24285,2715,21000]] #模擬文件系統的數據,data[0],[1],[2]分別表示所有空間,使用空間,剩餘空間

worksheet.write_row('B2',data[0],format_data) #將數據寫入,這裏安裝整行寫入

worksheet.write_row('B3',data[1],format_data)

worksheet.write_row('B4',data[2],format_data)

 

chart=workbook.add_chart({'type':'column'}) #建立表格,表格類型爲column

chart.set_title({'name':u'文件系統使用率'}) #設置表格的title

for i in ['B','C','D']:

chart.add_series({

'categories': 'sheet1!$A$2:$A$4',

'values':'sheet1!$'+i+'$2:$'+i+'$4',

'name':'=sheet1!$'+i+'$1'

})

#注意上面的表格中,每一行的數據在圖中會顯示在一塊兒,也就是說values爲B2:B4

 

chart.set_size({'width':800,'height':500}) #設置表格的大小

chart.set_y_axis({'name': 'MB'}) #設置表格y軸信息

#chart.set_style(33) #設置表格的樣式

worksheet.insert_chart('A8',chart) #插入表格

workbook.close()

顯示的圖片結果以下: