Guest User

Untitled

a guest
Jan 14th, 2018
126
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.57 KB | None | 0 0
  1. import psycopg2
  2. import xlrd
  3.  
  4. try:
  5. conn = psycopg2.connect(user = 'Username', password = 'Password', host = 'Host_name', database = 'DB_name', port = Port_number)
  6. mycursor = conn.cursor()
  7.  
  8. print('DB connection open')
  9. print('XLRD Data inserting into DB Table')
  10.  
  11. #Open the excel
  12. book = xlrd.open_workbook('excel_name.xlsx')
  13. #Use Index # for Which worksheet or use by_sheet_name......
  14. sheet = book.sheet_by_index(0)
  15.  
  16. #Loop row index's
  17. for rowidx in range(sheet.nrows):
  18. row = sheet.row(rowidx)
  19. #Loop Column index's
  20. for colidx, cell in enumerate(row):
  21. #Cell value Text for Header name
  22. if cell.value == "Header_Name_Column_A":
  23. #Varablize header index #
  24. header_name_a_index = colidx
  25.  
  26. if cell.value == "Header_Name_Column_B":
  27. #Varablize header index #
  28. header_name_b_index = colidx
  29.  
  30. if cell.value == "Header_Name_Column_C":
  31. #Varablize header index #
  32. header_name_c_index = colidx
  33.  
  34. if cell.value == "Header_Name_Column_D":
  35. #Varablize header index #
  36. header_name_d_index = colidx
  37.  
  38. #Insert generic values into DB table columns
  39. #I have tried moving the sql and excel for loop within the different loops above.
  40. sql = """INSERT INTO db_table_name(
  41. first_column_name_db,
  42. second_column_name_db,
  43. third_column_name_db,
  44. fourth_column_name_db
  45. )
  46.  
  47. VALUES(
  48. %s,
  49. %s,
  50. %s,
  51. %s)"""
  52.  
  53. #loop through all rows and cells
  54. for r in range(1, sheet.nrows):
  55. first_column_name_db = sheet.cell(r, header_name_a_index).value
  56. #Index number prints for each row, but only the last row inserts into the db table.
  57. print(header_name_a_id_index)
  58. second_column_name_db = sheet.cell(r, header_name_b_index).value
  59. third_column_name_db = sheet.cell(r, header_name_c_index).value
  60. fourth_column_name_db = sheet.cell(r, header_name_d_index).value
  61.  
  62. #Assign values to each row
  63. values = (
  64. first_column_name_db,
  65. second_column_name_db,
  66. third_column_name_db,
  67. fourth_column_name_db
  68. )
  69.  
  70. mycursor.execute(sql, values)
  71.  
  72. #Commit to the DB. Close the mycursor and conn.
  73. mycursor.close()
  74. #Just a thought - Do I need to commit each row???
  75. conn.commit()
  76. conn.close()
  77.  
  78. except Exception as e:
  79. #Close cursor and connection if error
  80. mycursor.close()
  81. conn.close()
  82. print('Error')
  83. print(e)
Add Comment
Please, Sign In to add comment