python處理excel文件之xlsxwriter?模塊
模塊安裝:
pip install xlsxwriter
安裝完畢,直接在文件中進行模塊導入,測試是夠存在BUG。
import xlsxwriter
該模塊看名字就能知道其用法,它是用來向 Excel 中寫入數(shù)據(jù)的模塊,其中限制 Excel 版本為2007+。
模塊基本使用
接下來完成一個基本的流程,創(chuàng)建文件并寫入數(shù)據(jù):
import xlsxwriter # 創(chuàng)建工作簿 workbook = xlsxwriter.Workbook('測試.xlsx') # 添加工作表 worksheet = workbook.add_worksheet() # 寫入hello world 到 A1 單元格 worksheet.write('A1', 'Hello World') # 關(guān)閉Excel文件 workbook.close()
代碼的流程為創(chuàng)建工作簿,創(chuàng)建工作表,寫入數(shù)據(jù)到指定單元格。
寫入更多樣式數(shù)據(jù)
上述案例是最簡單的應用,我們可以對其進行擴展,添加更多的樣式。
相關(guān)注釋已經(jīng)寫到代碼中,可以配合注釋進行學習。
import xlsxwriter # 創(chuàng)建工作簿 workbook = xlsxwriter.Workbook('測試.xlsx') # 創(chuàng)建工作表 worksheet = workbook.add_worksheet('測試Sheet') # 設(shè)置單一列寬度 worksheet.set_column('A:A', 20) # 設(shè)置加粗樣式 bold = workbook.add_format({'bold': True}) # 寫入數(shù)據(jù) A1 worksheet.write('A1', 'Hello') # 寫入數(shù)據(jù) A2 worksheet.write('A2', 'world', bold) # 寫入數(shù)據(jù) B1 worksheet.write('B1', u'世界你好') workbook.close()
上表中關(guān)于設(shè)置列寬的函數(shù) set_column()
,可擴展學習的函數(shù)有:
worksheet.set_column("A:B", 15)
:依據(jù)列名設(shè)置區(qū)域列寬度;worksheet.set_column("0:1", 15)
:依據(jù)索引更新列寬度;worksheet.set_row(1, 30)
:設(shè)置單一行高度。
其余樣式擴展
上文僅設(shè)置了一個加粗樣式,你可以對其它樣式進行配置
# 設(shè)置列頭樣式 head_format = workbook.add_format({ 'bold': True, # 字體加粗 'border': 1, # 單元格邊框?qū)挾? 'align': 'left', # 對齊方式 'valign': 'vcenter', # 字體對齊方式 'fg_color': '#03A9F4', # 單元格背景顏色 'font_size': 12 # 字體大小 })
除了整體配置外,也可以使用對象方法的形式進行設(shè)置,設(shè)置完畢之后的用法就是在 worksheet.write()
方法中攜帶該參數(shù)。
workfomat = workbook.add_format() workfomat.set_bold(1) # 設(shè)置加粗 workfomat.set_border(1) # 設(shè)置邊框 workfomat.set_num_format('0.00') # 格式化數(shù)據(jù)格式為小數(shù)點后兩位 workfomat.set_align('center') # 設(shè)置水平對齊方式 workfomat.set_bg_color('#ff0000') # 設(shè)置單元格前景色 # 設(shè)置加粗樣式 bold = workbook.add_format({'bold': True}) # 寫入數(shù)據(jù) A1 worksheet.write('A1', 'Hello', workfomat)
xlsxwriter 中的 write 方法
除了write()
方法以外,該模塊還存在一些擴展方法,具體如下:
write_string()
:寫入字符串;write_number()
:寫入數(shù)字;write_blank()
:將帶有格式的空白字符寫入工作表單元格,僅保留單元格樣式。write_formula()
:寫入公式;write_datetime()
:寫入時間;write_boolean()
:寫入布爾值;write_url()
:寫入鏈接。
還有一些未羅列,可以參考下圖:
如果希望插入圖片,參考下述代碼即可:
# 插入圖片,參數(shù)1為單元格,參數(shù)2為圖片地址 worksheet.insert_image('B2','cup_PNG2001.png')
xlsxwriter 關(guān)閉文件
在操作 Excel 文件之后,記住一定要關(guān)閉文件,代碼如下:
workbook.close()
其它需要了解的方法
xlsxwriter 模塊還存在一些函數(shù),很多時候可以輔助我們進行代碼編寫。
write_row(row, col, data, cell_format=None)
:列固定,寫入數(shù)據(jù);write_column(row, col, data, cell_format=None)
:行固定,寫入數(shù)據(jù);insert_textbox(row, col, text, options=None)
:單元格寫入文本框insert_chart(row, col, chart, options=None)
:插入圖表;activate()
:設(shè)置活躍工作表;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)點
寫入功能非常全 除了基本設(shè)置以外,字體設(shè)置、前景色、背景色、邊框設(shè)置、單元格合并、公式、單元格注釋、行高設(shè)置、列寬設(shè)置……
xlsxwriter支持大文件寫入 在數(shù)據(jù)量特別大的情況下,可以啟用 constant memory
模式,即可開始逐行即時寫入功能,從而避免數(shù)據(jù)一次性讀取到內(nèi)存中。
缺點
不支持讀取和修改 Excel 文件 看名字就能之后,xlsxwriter 是寫入數(shù)據(jù)的模塊,所以其不能讀取 Excel 文件。
不支持XLS文件 xlsxwriter 不支持創(chuàng)建 xls 后綴結(jié)尾的 excel 文件。
到此這篇關(guān)于python處理excel文件之xlsxwriter 模塊的文章就介紹到這了,更多相關(guān) xlsxwriter 模塊內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python使用列表和字典實現(xiàn)簡單的考試系統(tǒng)詳解
這篇文章主要介紹了Python使用列表和字典實現(xiàn)簡單的考試系統(tǒng),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習吧2023-01-01Python數(shù)據(jù)分析之雙色球基于線性回歸算法預測下期中獎結(jié)果示例
這篇文章主要介紹了Python數(shù)據(jù)分析之雙色球基于線性回歸算法預測下期中獎結(jié)果,涉及Python基于線性回歸算法的數(shù)值運算相關(guān)操作技巧,需要的朋友可以參考下2018-02-02對python中兩種列表元素去重函數(shù)性能的比較方法
今天小編就為大家分享一篇對python中兩種列表元素去重函數(shù)性能的比較方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-06-06