Home » excel » Excel to PostgreSQL using Python

Excel to PostgreSQL using Python

Posted by: admin April 23, 2020 Leave a comment


I’m new to Python and I’m trying to export excel directly into postgreSQL without CSV files.

I don’t know if it’s possible.

I keep running into the error 'column "daily_date" is of type date but expression is of type numeric'.

import psycopg2
import xlrd

book = xlrd.open_workbook("pytest.xlsx")
sheet = book.sheet_by_name("Source")

database = psycopg2.connect (database = "RunP", user="postgres", password="", host="localhost", port="5432")

cursor = database.cursor()

query = """INSERT INTO orders (Daily_Date, Days, First, Second, Leader) VALUES (%s, %s, %s, %s, %s)"""

for r in range(1, sheet.nrows):
    Daily_Date = sheet.cell(r,0).value
    Days = sheet.cell(r,1).value
    First = sheet.cell(r,2).value
    Second = sheet.cell(r,3).value
    Leader = sheet.cell(r,4).value

    values = (Daily_Date, Days, First, Second, Leader)

    cursor.execute(query, values)




print ""
print ""
columns = str(sheet.ncols)
rows = str(sheet.nrows)
print "I just imported Excel into postgreSQL" 
How to&Answers:

Excel stores datetimes as numbers. You can use xlrd.xldate.xldate_as_datetime to convert:

    Daily_Date = xlrd.xldate.xldate_as_datetime(sheet.cell(r,0).value,book.datemode)