xlwings 入門及使用方式指導
我對比了openxl 和 xlwings的官方文檔,發現xlwings的官網API說明很清楚簡潔,
如果你剛入門,不要去百度按照功能搜索一句句的去拼接代碼,
直接花一個小時看下API接口說明,基本你就會用了
同時,官網還放了一些小實例,幫助你入門
xlwings官網API說明書
舉例一些操作模塊
打開和處理一個xlsx文件,關閉
import xlwings as xlw app = xlw.App(visible=True, add_book=False) app.display_alerts = False app.screen_updating = False # excel 是否展示內容 wb = app.books.open(self.XlsPath) procxls() # 個人處理過程 wb.save() # 處理后保存 wb.close() # 關閉文件句柄,寫入文件 app.quit() # 關閉app
寫入多行數據
儲存列表 # 將列表[1,2,3]儲存在A1:C1中 sht.range('A1').value=[1,2,3] # 將列表[1,2,3]儲存在A1:A3中 sht.range('A1').options(transpose=True).value=[1,2,3] # 將2x2表格,即二維數組,儲存在A1:B2中,如第一行1,2,第二行3,4 sht.range('A1').options(expand='table')=[[1,2],[3,4]]
options() 這個函數,中文文檔很少有人描述的很清楚的,建議大家去看官網,不要被誤導
xlwings高級接口
至於一些簡單的操作,已經有人寫了很不多的博客,我給大家引過來,自己不再過多贅述
xlwings一些讀、寫表格 API用法,中文博客地址
效率問題
啟動效率
open()時會啟動win環境自帶的office-excel安裝程序(就相當於幫你打開了要操作的excel表格);這個效率取決於你自身電腦性能,一般都要耗時3s左右,我試過老一點的筆記本要5s;
app = xlw.App(visible=True, add_book=False) app.display_alerts = False app.screen_updating = False # excel 是否展示內容 wb = app.books.open(self.XlsPath)
刷新效率
app.screen_updating = False 選項,是配置是否實時刷新excel程序的顯示內容,
如果配是True,我實測會導致速度慢三倍左右。
接口讀寫效率及建議
對excel的讀、寫,基本都是通過
sht.range(“A1”).value 【讀】
sht.range(“A1”).value = ‘你好’ 【寫】
這里邊有個性能問題,如果你一個個 cell單元格 去讀寫,特別慢,我循環 讀取+寫入 2000個單元格,耗時基本30s
但是,如果你批量讀、寫,就能變得很快,例如: 一次讀、寫一整行
sht.range(“A1:Z1”).value 【讀】
sht.range(“A1:Z1”).value = (‘你好’, ‘你好’, ‘你好’, …) 【寫】
所以,要提高效率,就要盡量批量操作
顏色讀寫性能及缺點
上邊證明批量操作能提高效率,但是,讀寫顏色又有一個不爽的地方,不支持批量操作
sht.range(“A1”).color 【讀】
sht.range(“A1”).color = (210, 67, 9) 【寫】
我做的項目,需要依據顏色對表格做不同的操作(修改、刪除等),導致每次只能循環一個個cell單元格來遍歷
原文:https://blog.csdn.net/wskzgz/article/details/89181501