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!
推薦閱讀:
- python xlsxwriter模塊的使用
- 如何用python合並多個excel文件
- python 使用xlsxwriter循環向excel中插入數據和圖片的操作
- Python如何實現Excel的最合適列寬(openpyxl)
- 如何利用Python批量處理行、列和單元格詳解