xlsxwriter使用簡介

2021-09-25 00:10:53 字數 1967 閱讀 7690

1.優點

一、功能比較強

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

二、支援大檔案寫入

如果資料量非常大,可以啟用constant memory模式,這是一種順序寫入模式,得到一行資料就立刻寫入一行,而不會把所有的資料都保持在記憶體中。

2.缺點

一、不支援讀取和修改

作者並沒有打算做乙個xlsxreader來提供讀取操作。不能讀取,也就無從修改了。它只能用來建立新的檔案。我是利用xlrd把需要的資訊讀入後,用xlsxwriter建立全新的檔案。

另外,即使是建立到一半excel檔案,也是無法讀取已經建立出來的內容的(資訊應該在,但是並沒有相應的介面)。因為它的主要方法是write而不是set。當你在某個單元格寫入資料後,除非你自己儲存了相關的內容,否則還是沒有辦法讀出已經寫入的資訊。從這個角度看,你無法做到讀出->修改->寫回,只能是寫入->寫入->寫入。

二、不支援xls檔案

xls是office 2013或更早版本所使用的格式,是一種二進位制格式的檔案。xlsx則是用一系列xml檔案組成的(最後的x代表了xml)乙個壓縮包。如果非要建立低版本的xls檔案,就請移步xlwt吧。

三、暫時不支援透視表(pivot table

3.基本操作方法

建立excel檔案

import xlsxwriter

f = xlsxwriter.workbook() # 建立excel檔案

建立工作表

worksheet1 = f.add_worksheet(『操作日誌』) # 括號內為工作表表名

新增工作表樣式

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

bold = f.add_format()

寫入單個單元格資料

//row:行, col:列, data:要寫入的資料, bold:單元格的樣式

worksheet1.write(row, col, data, bold)

寫入一整行,一整列

// a1:從a1單元格開始插入資料,按行插入, data:要寫入的資料(格式為乙個列表), bold:單元格的樣式

worksheet1.write_row(「a1」,data,bold)

// a1:從a1單元格開始插入資料,按列插入, data:要寫入的資料(格式為乙個列表), bold:單元格的樣式

worksheet1.write_column(「a1」,data,bold)

插入// 第乙個引數是插入的起始單元格,第二個引數是你檔案的絕對路徑

寫入超連結

worksheet1.write_url(row, col, 「internal:%s!a1」 % (「要關聯的工作表表名」), string=「超連結顯示的名字」)

插入圖表

workbook.add_chartsheet(type="")

引數中的type指的是圖表型別,圖表型別示例如下:

[area:面積圖,bar:條形圖,column:直方圖,doughnut:環狀圖,line:折線圖,pie:餅狀圖,scatter:散點圖,radar:雷達圖,stock:箱線圖]

獲得當前excel檔案的所有工作表

workbook.worksheets()

workbook.worksheets()用於獲得當前工作簿中的所有工作表,這個函式的存在便利了對於工作表的迴圈操作,如果你想在當前工作簿的所有工作表的a1單元格中輸入乙個字元創『hello xlsxwriter』,那麼這個命令就派上用場了。

關閉excel檔案

workbook.close()

這個命令是使用xlsxwriter操作excel的最後一條命令,一定要記得關閉檔案。

使用XlsxWriter建立Excel檔案並編輯

之前操作excel使用過其他的方式,針對excel的寫入來說,使用過xlwt模組,也直接使用過win32com介面。如果說哪個最能夠發揮excel的威力,那麼肯定是win32com介面實現的方式,然而這種方式需要的是office軟體支援。至於xlwt,我覺得我們平時用到的功能基本上都有了,通常這個基...

xlsxwriter操作例子

import os import xlsxwriter workbook xlsxwriter.workbook 報告.xlsx worksheet workbook.add worksheet sheet1 worksheet.set column 0,12,12 cell format for ...

xlsxwriter編寫複雜表頭

作為一名資料分析小白,並且第一次寫blog,如果有錯,請多多指教。並且 可能太手工了,如果有更高效 簡易的寫法,請指點一下。先上圖,做成的效果大概就這個樣子,在excel中,如果要做成這種圖,很簡單,就是合併單元格的事。但在python裡面寫,就難倒我了。看完資料後,發現有兩個方向可以做成複雜表頭。...