python處理excel文件之xlsxwriter 模塊

模塊安裝:

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 模塊內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: