網(wǎng)站首頁 編程語言 正文
模塊安裝:
pip install xlsxwriter
安裝完畢,直接在文件中進(jìn)行模塊導(dǎo)入,測試是夠存在BUG。
import xlsxwriter
該模塊看名字就能知道其用法,它是用來向 Excel 中寫入數(shù)據(jù)的模塊,其中限制 Excel 版本為2007+。
模塊基本使用
接下來完成一個(gè)基本的流程,創(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ù)
上述案例是最簡單的應(yīng)用,我們可以對其進(jìn)行擴(kuò)展,添加更多的樣式。
相關(guān)注釋已經(jīng)寫到代碼中,可以配合注釋進(jìn)行學(xué)習(xí)。
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()
?,可擴(kuò)展學(xué)習(xí)的函數(shù)有:
-
worksheet.set_column("A:B", 15)
:依據(jù)列名設(shè)置區(qū)域列寬度; -
worksheet.set_column("0:1", 15)
?:依據(jù)索引更新列寬度; -
worksheet.set_row(1, 30)
:設(shè)置單一行高度。
其余樣式擴(kuò)展
上文僅設(shè)置了一個(gè)加粗樣式,你可以對其它樣式進(jìn)行配置
# 設(shè)置列頭樣式 head_format = workbook.add_format({ 'bold': True, # 字體加粗 'border': 1, # 單元格邊框?qū)挾? 'align': 'left', # 對齊方式 'valign': 'vcenter', # 字體對齊方式 'fg_color': '#03A9F4', # 單元格背景顏色 'font_size': 12 # 字體大小 })
除了整體配置外,也可以使用對象方法的形式進(jìn)行設(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ù)點(diǎn)后兩位 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()
方法以外,該模塊還存在一些擴(kuò)展方法,具體如下:
-
write_string()
:寫入字符串; -
write_number()
:寫入數(shù)字; -
write_blank()
:將帶有格式的空白字符寫入工作表單元格,僅保留單元格樣式。 -
write_formula()
:寫入公式; -
write_datetime()
:寫入時(shí)間; -
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ù),很多時(shí)候可以輔助我們進(jìn)行代碼編寫。
-
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)缺點(diǎn)
優(yōu)點(diǎn)
寫入功能非常全?除了基本設(shè)置以外,字體設(shè)置、前景色、背景色、邊框設(shè)置、單元格合并、公式、單元格注釋、行高設(shè)置、列寬設(shè)置……
xlsxwriter支持大文件寫入?在數(shù)據(jù)量特別大的情況下,可以啟用?constant memory
?模式,即可開始逐行即時(shí)寫入功能,從而避免數(shù)據(jù)一次性讀取到內(nèi)存中。
缺點(diǎn)
不支持讀取和修改 Excel 文件?看名字就能之后,xlsxwriter 是寫入數(shù)據(jù)的模塊,所以其不能讀取 Excel 文件。
不支持XLS文件?xlsxwriter 不支持創(chuàng)建 xls 后綴結(jié)尾的 excel 文件。
原文鏈接:https://juejin.cn/post/7077177299593855013
相關(guān)推薦
- 2023-01-29 python缺失值填充方法示例代碼_python
- 2022-03-01 iview表格中 colums中使用render函數(shù)的幾種總結(jié)
- 2022-12-15 詳解Golang如何比較兩個(gè)slice是否相等_Golang
- 2023-07-17 uniapp H5頁面內(nèi)獲取手機(jī)號撥打電話
- 2022-08-05 Entity?Framework主從表數(shù)據(jù)加載方式_C#教程
- 2022-04-25 Pytorch技法之繼承Subset類完成自定義數(shù)據(jù)拆分_python
- 2022-04-27 詳解如何在Flutter中用小部件創(chuàng)建響應(yīng)式布局_Android
- 2023-12-20 Mybatis中resultMap結(jié)果集的使用
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運(yùn)行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運(yùn)算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認(rèn)證信息的處理
- Spring Security之認(rèn)證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯(cuò)誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實(shí)現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡單動(dòng)態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊(duì)列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支