2012-08-22 97 views
3

我有一個xls文件,這是67M,126000行,我想盡快導入到sqlite數據庫。如何快速讀取excel?

現在我有兩個解決方案,與用Python實現:

  1. 使用xlrd讀取Excel和sqlite3的插入到數據庫中; (它的成本約28S
  2. 使用adodbapi讀取Excel和sqlite3的插入到數據庫中; (它大約33s

我希望它可以在20秒內完成。你有任何其他的解決方案嗎?編程語言必須是Python或C/C++,因爲我想將它集成到Python程序中。

+1

纔有可能將其導出爲CSV和閱讀?我不確定,但也許更快? – javex

+0

考慮到我們正在調度大約126 k行,如果你能做得更快,我還有疑問。但同意javex:先把它變成csv。從csv加載它,並將其用作進一步活動和現實檢查的基準。 – schacki

+0

您可以使用[LibreOffice](http://www.libreoffice.org/)轉換爲csv。看看[這裏](http://stackoverflow.com/a/11749459/1117641) –

回答

0

使用LibreOffice。它可以在批處理模式下轉換:

subprocess.call(['loffice', '--invisible', '--convert-to', 'csv', file]) 

這是值得一試的嗎?

+0

最後我選擇了優化我的解決方案2(使用adodbapi來讀取Excel)。由於該方法_getValue()的_SQLrow總是轉換價值在我的程序中,它沒有幫助。所以我只是使用SQL的原始數據(_SQLrows的ado_results屬性)。它確實使我的程序運行得更快。 –