简体   繁体   English

python sqlite3从excel创建数据库

[英]python sqlite3 creating a DB from excel

I'm trying to create a DB from an excel spreadsheet.我正在尝试从 Excel 电子表格创建数据库。 I have the below code, the issue is when i run my code my database creates a table for each column.我有下面的代码,问题是当我运行我的代码时,我的数据库为每一列创建了一个表。 I would like to create a table for each spreadsheet listed in the workbook.我想为工作簿中列出的每个电子表格创建一个表格。 sheet names are sheet1 and sheet2.工作表名称是工作表 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()

Passing sheetname=None will give you an OrderedDict with keys of the sheet name and values as dataframes, you then loop over that.传递sheetname=None将为您提供一个 OrderedDict ,其中包含工作表名称的键和值作为数据框,然后您循环遍历它。

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)
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()

Get the sheetnames first and then read the sheets and write to sqlite as given above.首先获取工作表名称,然后读取工作表并按照上面给出的方式写入 sqlite。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM