我尝试从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()
答案 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。