Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

python sqlite3 creating a DB from excel

I'm trying to create a DB from an excel spreadsheet. 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.

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()
like image 288
springcj1 Avatar asked Jan 29 '23 09:01

springcj1


1 Answers

Passing sheetname=None will give you an OrderedDict with keys of the sheet name and values as dataframes, you then loop over that.

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)
like image 164
Jon Clements Avatar answered Jan 31 '23 21:01

Jon Clements