python sqlite3从excel创建数据库

python sqlite3从excel创建数据库,python,python-3.x,sqlite,Python,Python 3.x,Sqlite,我正在尝试从excel电子表格创建数据库。我有下面的代码,问题是当我运行代码时,我的数据库会为每一列创建一个表。我想为工作簿中列出的每个电子表格创建一个表。图纸名称为图纸1和图纸2 import sqlite3 import pandas as pd filename="script" con=sqlite3.connect(filename+".db") wb=pd.read_excel(filename+'.xlsx',sheet_name='shee

我正在尝试从excel电子表格创建数据库。我有下面的代码,问题是当我运行代码时,我的数据库会为每一列创建一个表。我想为工作簿中列出的每个电子表格创建一个表。图纸名称为图纸1和图纸2

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

传递
sheetname=None
将为您提供一个带有表名键和值作为数据帧的OrderedICT,然后您将循环该数据帧

import pandas as pd
import sqlite3

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

首先获取图纸名称,然后阅读图纸并将其写入sqlite,如上所述。

您通过
sheetname='sheet1'
专门加载一张图纸,使用
sheetname=None
加载所有图纸,然后循环我最初尝试sheetname=none,但得到了回溯名称错误:根据下面的havlock和stackoverflow.com/questions/57348149未定义名称“none”。更新代码以反映sheet_name vs sheetname以避免第二个错误。感谢您传递sheetname=None是我正在寻找的。我最初尝试过,但由于我通过了“无”而不是“无”的新手错误,所以挂断了电话。我感谢您的帮助!Per sheetname(现在?)应该是sheet_名称,即带有下划线列名?页眉或无页眉?更新:
sheetname=sheet
已更改为
sheet\u name=sheet
,因为自2018年起sheetname已被弃用。
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()