3

我有一个 67M,126000 行的 xls 文件,我想尽快将其导入 sqlite 数据库。

现在我有两个用 python 实现的解决方案:

  1. 使用xlrd读取excel,使用sqlite3插入数据库;(大约需要28s
  2. 使用adodbapi读取excel,使用sqlite3插入数据库;(花费大约 33 秒

我希望它可以在 20 秒内完成。您还有其他解决方案吗?编程语言必须是 Python 或 C/C++,因为我想将它集成到 Python 程序中。

4

2 回答 2

0

使用LibreOffice。它可以批量转换:

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

也许值得一试?

于 2012-08-22T15:24:32.467 回答
0

使用熊猫来做到这一点。它非常快,这里涉及两个步骤。1. 将 excel 文件作为数据框导入 2. 将数据框导出到 sql

import pandas as pd
import numpy as np
import sqlite3

conn = sqlite3.connect('database.db')   #Connection to Database

df = pd.read_excel('excel_file.xlsx')   #Reading from excel file

df.to_sql(name='table_of_database', con=conn)  # Writing to SQL
conn.close()

我知道它会很快。但请告诉我执行后经过的时间,因为我没有评估 67M 数据。

于 2019-05-14T07:54:27.073 回答