首頁 > 軟體

python處理excel檔案之xlsxwriter 模組

2022-05-16 19:00:12

模組安裝:

pip install xlsxwriter

安裝完畢,直接在檔案中進行模組匯入,測試是夠存在BUG。

import xlsxwriter

該模組看名字就能知道其用法,它是用來向 Excel 中寫入資料的模組,其中限制 Excel 版本為2007+。

模組基本使用

接下來完成一個基本的流程,建立檔案並寫入資料:

import xlsxwriter

# 建立工作簿
workbook = xlsxwriter.Workbook('測試.xlsx')
# 新增工作表
worksheet = workbook.add_worksheet()

# 寫入hello world 到 A1 單元格
worksheet.write('A1', 'Hello World')

# 關閉Excel檔案
workbook.close()

程式碼的流程為建立工作簿,建立工作表,寫入資料到指定單元格。

寫入更多樣式資料

上述案例是最簡單的應用,我們可以對其進行擴充套件,新增更多的樣式。

相關注釋已經寫到程式碼中,可以配合註釋進行學習。

import xlsxwriter
# 建立工作簿
workbook = xlsxwriter.Workbook('測試.xlsx')
# 建立工作表
worksheet = workbook.add_worksheet('測試Sheet')
# 設定單一列寬度
worksheet.set_column('A:A', 20)
# 設定加粗樣式
bold = workbook.add_format({'bold': True})
# 寫入資料 A1
worksheet.write('A1', 'Hello')
# 寫入資料 A2
worksheet.write('A2', 'world', bold)
# 寫入資料 B1
worksheet.write('B1', u'世界你好')
workbook.close()

上表中關於設定列寬的函數 set_column() ,可延伸學習的函數有:

  • worksheet.set_column("A:B", 15):依據列名設定區域列寬度;
  • worksheet.set_column("0:1", 15) :依據索引更新列寬度;
  • worksheet.set_row(1, 30):設定單一行高度。

其餘樣式擴充套件

上文僅設定了一個加粗樣式,你可以對其它樣式進行設定

# 設定列頭樣式
head_format = workbook.add_format({
    'bold': True,                   # 字型加粗
    'border': 1,                    # 單元格邊框寬度
    'align': 'left',                # 對齊方式
    'valign': 'vcenter',            # 字型對齊方式
    'fg_color': '#03A9F4',          # 單元格背景顏色
    'font_size': 12                 # 字型大小
})

除了整體設定外,也可以使用物件方法的形式進行設定,設定完畢之後的用法就是在 worksheet.write() 方法中攜帶該引數。

workfomat = workbook.add_format()
workfomat.set_bold(1)  # 設定加粗
workfomat.set_border(1)  # 設定邊框
workfomat.set_num_format('0.00')  # 格式化資料格式為小數點後兩位
workfomat.set_align('center')  # 設定水平對齊方式
workfomat.set_bg_color('#ff0000')  # 設定單元格前景色
# 設定加粗樣式
bold = workbook.add_format({'bold': True})
# 寫入資料 A1
worksheet.write('A1', 'Hello', workfomat)

xlsxwriter 中的 write 方法

除了write()方法以外,該模組還存在一些擴充套件方法,具體如下:

  • write_string():寫入字串;
  • write_number():寫入數位;
  • write_blank():將帶有格式的空白字元寫入工作表單元格,僅保留單元格樣式。
  • write_formula():寫入公式;
  • write_datetime():寫入時間;
  • write_boolean():寫入布林值;
  • write_url():寫入連結。

還有一些未羅列,可以參考下圖:

如果希望插入圖片,參考下述程式碼即可:

# 插入圖片,引數1為單元格,引數2為圖片地址
worksheet.insert_image('B2','cup_PNG2001.png')

xlsxwriter 關閉檔案

在操作 Excel 檔案之後,記住一定要關閉檔案,程式碼如下:

workbook.close()

其它需要了解的方法

xlsxwriter 模組還存在一些函數,很多時候可以輔助我們進行程式碼編寫。

  • write_row(row, col, data, cell_format=None):列固定,寫入資料;
  • write_column(row, col, data, cell_format=None):行固定,寫入資料;
  • insert_textbox(row, col, text, options=None):單元格寫入文字方塊
  • insert_chart(row, col, chart, options=None):插入圖表;
  • activate():設定活躍工作表;
  • merge_range(first_row, first_col, last_row,last_col,data, cell_format=None):合併單元格;
  • conditional_format(first_row, first_col, last_row, last_col,options=None):條件格式;

xlsxwriter 模組的優缺點

優點

寫入功能非常全 除了基本設定以外,字型設定、前景色、背景色、邊框設定、單元格合併、公式、單元格註釋、行高設定、列寬設定……

xlsxwriter支援大檔案寫入 在資料量特別大的情況下,可以啟用 constant memory 模式,即可開始逐行即時寫入功能,從而避免資料一次性讀取到記憶體中。

缺點

不支援讀取和修改 Excel 檔案 看名字就能之後,xlsxwriter 是寫入資料的模組,所以其不能讀取 Excel 檔案。

不支援XLS檔案 xlsxwriter 不支援建立 xls 字尾結尾的 excel 檔案。

到此這篇關於python處理excel檔案之xlsxwriter 模組的文章就介紹到這了,更多相關 xlsxwriter 模組內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com