https://blog.csdn.net/qq_41030861/article/details/82148777html
安裝使用pip install XlsxWriter來安裝,Xlsxwriter用來建立excel表格,功能很強大,下面具體介紹:python
1.簡單使用excel的實例:數組
#coding:utf-8
app
import xlsxwriter
測試
workbook = xlsxwriter.Workbook('d:\\suq\\test\\demo1.xlsx') #建立一個excel文件
字體
worksheet = workbook.add_worksheet('TEST') #在文件中建立一個名爲TEST的sheet,不加名字默認爲sheet1
url
worksheet.set_column('A:A',20) #設置第一列寬度爲20像素
.net
bold = workbook.add_format({'bold':True}) #設置一個加粗的格式對象
excel
worksheet.write('A1','HELLO') #在A1單元格寫上HELLO
code
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()
顯示的圖片結果以下: