2013-11-28 62 views
2

win32com是一個從Python訪問COM對象的通用庫。像openpyxl或xlrd/xlwt這樣的第三方庫有什麼,win32com沒有?

這個庫的主要特點之一是能夠處理Excel文檔。

但是,有很多自定義模塊,其唯一目的是操縱excel文檔,如openpyxl,xlrd,xlwt,python-tablefu。

這些庫對於這個特定任務來說是否更好?如果是的話,在什麼方面?

+0

當你不在Windows上(無DCOM可用)和/或你沒有安裝Excel時,如何處理excel文件? xlrd/wt至少提供了一個解決方案(因爲它可以解析.xlsx文件) – lucasg

回答

6

例如,直接高效地打開和寫入excel文件。

  • win32com使用COM溝通,這雖然是爲了某些目的非常有用的,它需要進行復雜的API調用,可以是非常緩慢的(這麼說,您使用的是控制Windows代碼,控制的Excel)

  • openpyxl或其他人,只要打開一個excel文件,解析它,讓你使用它。

嘗試填充一個Excel文件2000行,每行100個細胞,用win32com,然後與任何其他直接解析器。雖然解析器需要幾秒鐘,但是win32com需要幾分鐘。

此外,openpyxl(我還沒有嘗試其他)不需要在系統中安裝excel。它甚至不需要操作系統是windows。

完全不同的概念。 win32com是一門藝術,爲幾乎任何事情自動化打開了大門,而另一種選擇只是一個文件解析器。換句話說,要熨燙你的襯衫,你需要使用價值20美元的鐵板,而不是附在蘭博基尼暗黑破壞神上的100噸金屬板。

+0

要清楚,哪一個需要幾分鐘才能填充200,000個單元? –

+0

嗯,我認爲這很難被誤解,但win32com是一個很慢的問題。 – bgusach

+0

我會讓自己承擔儘可能多的責任,但從一種方式列出這兩種解決方案之後,您提供了相反的性能評估。很高興知道,謝謝。 –

相關問題