Я пытаюсь изучить Python и пытаюсь сгенерировать файл .sql из сопоставления, предоставленного мне в файле excel.Но я могу просматривать строки и столбцы первого листа, но не могу перейти к следующим листам.Я использую Python 3.7.Каждый лист будет содержать два столбца
Вот как выглядят столбцы листа Excel:
TABLE1 TABLE2
-----------------------------------
VERSION NULL
VALID_FROM USG_DT
USERNAME MIG
UD_GEPART_ID NULL
UD_SEPART_ID NULL
В одной книге может быть несколько листов.
Ниже приведен примерпытался до сих пор.Пожалуйста, кто-нибудь может указать мне, где я ошибаюсь в коде, поскольку я не могу перейти к следующему листу:
wb = xl.load_workbook("C:\\New folder\\MAPPING.xlsx")
ws = wb.sheetnames
sheets = [wb.sheetnames]
statement_a = "INSERT /*+ APPEND */ INTO "
statement_b = "SELECT /*+ PARALLEL(64) */ "
for i, ws in enumerate(sheets):
stat_c = statement_b
stat_d = statement_b + ws[1+i] + " ( "
for sh in wb.worksheets:
sh = wb.active
for col_cells in sh.iter_cols(min_row= 2, min_col= 1, max_col=2):
for cell in col_cells:
stat_c = stat_c + str(cell.value) + ", "
stat_c = stat_c.rstrip(", ") +" FROM " + ws[1+i] + ";"
print(stat_c)
print("-------------------------------------------------")
for col_cellr in sh.iter_cols(max_row = 1,min_col= 2, max_col =2):
for cell in col_cellr:
stat_a = statement_a + cell.value + " ( "
for col_celli in sh.iter_cols(min_row= 2, min_col= 1, max_col=1):
for cell in col_celli:
stat_a = stat_a + str(cell.value) + ", "
stat_a = stat_a.rstrip(", ") + " )"
print("\n")
print(stat_a)
Это не дает мне правильный вывод.Например, оно включает имя второго листа в качестве имени таблицы в операторе выбора столбцов первого листа.Пожалуйста, кто-нибудь может мне помочь, указав на мою ошибку.
Ожидаемый o / p:
INSERT /*+ APPEND */ INTO TABLE1 (VERSION,VALID_FROM,USERNAME,UD_GEPART_ID, UD_SEPART_ID)
SELECT /*+ PARALLEL(64) */ NULL, USG_DT, MIG, NULL,NULL FROM TABLE2;
Аналогично переберите другие таблицы и сгенерируйте операторы, как указано выше.