python sqlite3从excel创建一个DB

时间:2017-10-18 15:44:18

标签: python python-3.x sqlite

我尝试从Excel电子表格创建数据库。我有以下代码,问题是当我运行我的代码时,我的数据库为每列创建一个表。我想为工作簿中列出的每个电子表格创建一个表。工作表名称是sheet1和sheet2。

import sqlite3
import pandas as pd
filename="script"
con=sqlite3.connect(filename+".db")
wb=pd.read_excel(filename+'.xlsx',sheetname='sheet1')
for sheet in wb:
wb[sheet].to_sql(sheet,con, index=False)
con.commit()
con.close()

2 个答案:

答案 0 :(得分:5)

传递sheetname=None将为您提供一个OrderedDict,其中包含工作表名称和值作为数据框的键,然后循环显示。

import pandas as pd
import sqlite3

db = sqlite3.connect(':memory:')
dfs = pd.read_excel('somefile.xlsx', sheetname=None)
for table, df in dfs.items():
    df.to_sql(table, db)

答案 1 :(得分:0)

import sqlite3
import pandas as pd
filename="script"
con=sqlite3.connect(filename+".db")
wb=pd.ExcelFile(filename+'.xlsx')
for sheet in wb.sheet_names:
        df=pd.read_excel(filename+'.xlsx',sheetname=sheet)
        df.to_sql(sheet,con, index=False,if_exists="replace")
con.commit()
con.close()

首先获取工作表名称,然后阅读工作表并写入上面给出的sqlite。