win32com是一個從Python訪問COM對象的通用庫。像openpyxl或xlrd/xlwt這樣的第三方庫有什麼,win32com沒有?
這個庫的主要特點之一是能夠處理Excel文檔。
但是,有很多自定義模塊,其唯一目的是操縱excel文檔,如openpyxl,xlrd,xlwt,python-tablefu。
這些庫對於這個特定任務來說是否更好?如果是的話,在什麼方面?
win32com是一個從Python訪問COM對象的通用庫。像openpyxl或xlrd/xlwt這樣的第三方庫有什麼,win32com沒有?
這個庫的主要特點之一是能夠處理Excel文檔。
但是,有很多自定義模塊,其唯一目的是操縱excel文檔,如openpyxl,xlrd,xlwt,python-tablefu。
這些庫對於這個特定任務來說是否更好?如果是的話,在什麼方面?
例如,直接高效地打開和寫入excel文件。
win32com
使用COM溝通,這雖然是爲了某些目的非常有用的,它需要進行復雜的API調用,可以是非常緩慢的(這麼說,您使用的是控制Windows代碼,控制的Excel)
openpyxl
或其他人,只要打開一個excel文件,解析它,讓你使用它。
嘗試填充一個Excel文件2000行,每行100個細胞,用win32com
,然後與任何其他直接解析器。雖然解析器需要幾秒鐘,但是win32com
需要幾分鐘。
此外,openpyxl
(我還沒有嘗試其他)不需要在系統中安裝excel。它甚至不需要操作系統是windows。
完全不同的概念。 win32com是一門藝術,爲幾乎任何事情自動化打開了大門,而另一種選擇只是一個文件解析器。換句話說,要熨燙你的襯衫,你需要使用價值20美元的鐵板,而不是附在蘭博基尼暗黑破壞神上的100噸金屬板。
要清楚,哪一個需要幾分鐘才能填充200,000個單元? –
嗯,我認爲這很難被誤解,但win32com是一個很慢的問題。 – bgusach
我會讓自己承擔儘可能多的責任,但從一種方式列出這兩種解決方案之後,您提供了相反的性能評估。很高興知道,謝謝。 –
當你不在Windows上(無DCOM可用)和/或你沒有安裝Excel時,如何處理excel文件? xlrd/wt至少提供了一個解決方案(因爲它可以解析.xlsx文件) – lucasg