我想弄清楚哪一個類似的任務通常更快:使用VBA或openpyxl。效率:openpyxl還是VBA?
我知道這可能取決於你想要達到的任務,但讓我們說我有一個表,它是50個單元寬和150,000個細胞高,我想將它從woorkbook一份給工作簿B.
任何關於python是否會做得更好,或者如果Excel更擅長處理自己的想法?
我的膽量告訴我,蟒蛇應該是相當快因爲某些原因:
- 爲了讓子從一個工作簿複製到另一臺,都應該是開放和運行,而用蟒蛇我可以簡單地加載兩者;
- VBA必須處理很多與大多數任務雜亂的,它需要的系統資源的大量
除此之外,我想知道如果我可以做一些進一步改善的openpyxl腳本,像多線程或可能使用NumPy一起。
感謝您的幫助!
回答你的問題最簡單的方法是兩種方法。無需猜測。 「VBA必須處理大部分任務中的大量混亂,並且需要很多系統資源」 - 這是基於什麼? –
我不是最有經驗的VBA編程人員,但是從我的經驗和我所知道的,使VBA高效是一項非常艱鉅的任務,而且經常在管理大量數據時變得非常慢。另外,我開始用這兩種資源編寫這個例程,在VBA的情況下,我需要打開兩個電子表格,每次需要處理另一個時,我必須激活它們,它立即刷新,等等,等等。 –
我會說如果您沒有經驗,那麼使VBA *效率低下是絕對有可能的,但是對於任何語言來說,這都可能是相同的。從性能角度來看,VBA有一大優勢,那就是它的運行方式與Excel相同,所以不會有與從VBA中自動執行Excel相關的跨進程開銷:如果您需要進行大量的調用,這會變得非常重要來自另一個進程的Excel。儘可能地使用數組而不是逐個單元格可以幫助儘量減少這種情況,但這絕對是一個因素。 –