2012-08-22 67 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属性)。它确实使我的程序运行得更快。 –