python利用xlwings庫 處理excel 效率 及其他總結-持續更新


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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM