XlsxWriter的使用

各種python操作excel的工具包功能對比

xlsxwriter的基本使用

1.優(yōu)點

一、功能比較強

相對而言,這是除Excel自身之外功能最強的工具了。比如我就用到了它提供的:字體設置、前景色背景色、border設置、視圖縮放(zoom)、單元格合并、autofilter、freeze panes、公式、data validation、單元格注釋、行高和列寬設置等等。

二、支持大文件寫入

如果數(shù)據(jù)量非常大,可以啟用constant memory模式,這是一種順序寫入模式,得到一行數(shù)據(jù)就立刻寫入一行,而不會把所有的數(shù)據(jù)都保持在內(nèi)存中。

2.缺點

一、不支持讀取和修改

作者并沒有打算做一個XlsxReader來提供讀取操作。不能讀取,也就無從修改了。它只能用來創(chuàng)建新的文件。我是利用xlrd把需要的信息讀入后,用XlsxWriter創(chuàng)建全新的文件。

另外,即使是創(chuàng)建到一半Excel文件,也是無法讀取已經(jīng)創(chuàng)建出來的內(nèi)容的(信息應該在,但是并沒有相應的接口)。因為它的主要方法是write而不是set。當你在某個單元格寫入數(shù)據(jù)后,除非你自己保存了相關的內(nèi)容,否則還是沒有辦法讀出已經(jīng)寫入的信息。從這個角度看,你無法做到讀出->修改->寫回,只能是寫入->寫入->寫入。

二、不支持XLS文件

XLS是Office 2013或更早版本所使用的格式,是一種二進制格式的文件。XLSX則是用一系列XML文件組成的(最后的X代表了XML)一個壓縮包。如果非要創(chuàng)建低版本的XLS文件,就請移步xlwt吧。

三、暫時不支持透視表(Pivot Table

3.基本操作方法

  • 創(chuàng)建excel文件
import xlsxwriter

f = xlsxwriter.Workbook()    # 創(chuàng)建excel文件

  • 創(chuàng)建工作表
worksheet1 = f.add_worksheet('操作日志')  # 括號內(nèi)為工作表表名

  • 添加工作表樣式

樣式有很多屬性,更多具體樣式請參考官方文檔

bold = f.add_format({
        'bold':  True,  # 字體加粗
        'border': 1,  # 單元格邊框寬度
        'align': 'left',  # 水平對齊方式
        'valign': 'vcenter',  # 垂直對齊方式
        'fg_color': '#F4B084',  # 單元格背景顏色
        'text_wrap': True,  # 是否自動換行
    })

  • 寫入單個單元格數(shù)據(jù)
//row:行, col:列, data:要寫入的數(shù)據(jù), bold:單元格的樣式
worksheet1.write(row, col, data, bold)

  • 寫入一整行,一整列
// A1:從A1單元格開始插入數(shù)據(jù),按行插入, data:要寫入的數(shù)據(jù)(格式為一個列表), bold:單元格的樣式
worksheet1.write_row(“A1”,data,bold)

// A1:從A1單元格開始插入數(shù)據(jù),按列插入, data:要寫入的數(shù)據(jù)(格式為一個列表), bold:單元格的樣式
worksheet1.write_column(“A1”,data,bold)

  • 插入圖片
// 第一個參數(shù)是插入的起始單元格,第二個參數(shù)是圖片你文件的絕對路徑
worksheet1.insert_image('A1','f:\\1.jpg')

  • 寫入超鏈接
worksheet1.write_url(row, col, "internal:%s!A1" % ("要關聯(lián)的工作表表名"), string="超鏈接顯示的名字")

  • 插入圖表
workbook.add_chartsheet(type="")

參數(shù)中的type指的是圖表類型,圖表類型示例如下:
[area:面積圖,bar:條形圖,column:直方圖,doughnut:環(huán)狀圖,line:折線圖,pie:餅狀圖,scatter:散點圖,radar:雷達圖,stock:箱線圖]

  • 獲得當前excel文件的所有工作表
workbook.worksheets()

workbook.worksheets()用于獲得當前工作簿中的所有工作表,這個函數(shù)的存在便利了對于工作表的循環(huán)操作,如果你想在當前工作簿的所有工作表的A1單元格中輸入一個字符創(chuàng)‘Hello xlsxwriter’,那么這個命令就派上用場了。

  • 關閉excel文件
workbook.close()

這個命令是使用xlsxwriter操作Excel的最后一條命令,一定要記得關閉文件。

?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內(nèi)容