Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import psycopg2
- import xlrd
- try:
- conn = psycopg2.connect(user = 'Username', password = 'Password', host = 'Host_name', database = 'DB_name', port = Port_number)
- mycursor = conn.cursor()
- print('DB connection open')
- print('XLRD Data inserting into DB Table')
- #Open the excel
- book = xlrd.open_workbook('excel_name.xlsx')
- #Use Index # for Which worksheet or use by_sheet_name......
- sheet = book.sheet_by_index(0)
- #Loop row index's
- for rowidx in range(sheet.nrows):
- row = sheet.row(rowidx)
- #Loop Column index's
- for colidx, cell in enumerate(row):
- #Cell value Text for Header name
- if cell.value == "Header_Name_Column_A":
- #Varablize header index #
- header_name_a_index = colidx
- if cell.value == "Header_Name_Column_B":
- #Varablize header index #
- header_name_b_index = colidx
- if cell.value == "Header_Name_Column_C":
- #Varablize header index #
- header_name_c_index = colidx
- if cell.value == "Header_Name_Column_D":
- #Varablize header index #
- header_name_d_index = colidx
- #Insert generic values into DB table columns
- #I have tried moving the sql and excel for loop within the different loops above.
- sql = """INSERT INTO db_table_name(
- first_column_name_db,
- second_column_name_db,
- third_column_name_db,
- fourth_column_name_db
- )
- VALUES(
- %s,
- %s,
- %s,
- %s)"""
- #loop through all rows and cells
- for r in range(1, sheet.nrows):
- first_column_name_db = sheet.cell(r, header_name_a_index).value
- #Index number prints for each row, but only the last row inserts into the db table.
- print(header_name_a_id_index)
- second_column_name_db = sheet.cell(r, header_name_b_index).value
- third_column_name_db = sheet.cell(r, header_name_c_index).value
- fourth_column_name_db = sheet.cell(r, header_name_d_index).value
- #Assign values to each row
- values = (
- first_column_name_db,
- second_column_name_db,
- third_column_name_db,
- fourth_column_name_db
- )
- mycursor.execute(sql, values)
- #Commit to the DB. Close the mycursor and conn.
- mycursor.close()
- #Just a thought - Do I need to commit each row???
- conn.commit()
- conn.close()
- except Exception as e:
- #Close cursor and connection if error
- mycursor.close()
- conn.close()
- print('Error')
- print(e)
Add Comment
Please, Sign In to add comment