網站首頁 編程語言 正文
模塊安裝:
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
相關推薦
- 2023-03-17 Docker部署Nginx并修改配置文件的兩種方式_docker
- 2022-10-14 DateUtil日期工具類
- 2023-01-26 Redis中的配置文件,數據持久化,事務_Redis
- 2022-01-28 寶塔的定時任務,如何設置秒數級別執(zhí)行?
- 2022-04-21 Python的基礎語法和輸入輸出函數你都了解嗎_python
- 2022-03-31 QT實現單詞檢索軟件的示例代碼_C 語言
- 2022-08-30 python在文件中倒序查找個關鍵詞
- 2023-04-02 Python使用conda如何安裝requirement.txt的擴展包_python
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環(huán)境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發(fā)現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態(tài)字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支