日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

python處理excel文件之xlsxwriter?模塊_python

作者:??夢想橡皮擦???? ? 更新時間: 2022-07-09 編程語言

模塊安裝:

pip install xlsxwriter

安裝完畢,直接在文件中進行模塊導入,測試是夠存在BUG。

import xlsxwriter

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

模塊基本使用

接下來完成一個基本的流程,創(chuàng)建文件并寫入數據:

import xlsxwriter

# 創(chuàng)建工作簿
workbook = xlsxwriter.Workbook('測試.xlsx')
# 添加工作表
worksheet = workbook.add_worksheet()

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

# 關閉Excel文件
workbook.close()

代碼的流程為創(chuàng)建工作簿,創(chuàng)建工作表,寫入數據到指定單元格。

寫入更多樣式數據

上述案例是最簡單的應用,我們可以對其進行擴展,添加更多的樣式。

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

import xlsxwriter
# 創(chuàng)建工作簿
workbook = xlsxwriter.Workbook('測試.xlsx')
# 創(chuàng)建工作表
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):依據列名設置區(qū)域列寬度;
  • 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 模塊的優(yōu)缺點

優(yōu)點

寫入功能非常全?除了基本設置以外,字體設置、前景色、背景色、邊框設置、單元格合并、公式、單元格注釋、行高設置、列寬設置……

xlsxwriter支持大文件寫入?在數據量特別大的情況下,可以啟用?constant memory?模式,即可開始逐行即時寫入功能,從而避免數據一次性讀取到內存中。

缺點

不支持讀取和修改 Excel 文件?看名字就能之后,xlsxwriter 是寫入數據的模塊,所以其不能讀取 Excel 文件。

不支持XLS文件?xlsxwriter 不支持創(chuàng)建 xls 后綴結尾的 excel 文件。

原文鏈接:https://juejin.cn/post/7077177299593855013

欄目分類
最近更新