我试图学习Python,并试图从excel文件中给我的映射生成一个.sql文件。但我可以浏览第一页的行和列,但无法前进到下一页。我使用的是python3.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)
它不能提供正确的输出。例如,它在第一个工作表列的select语句中包含第二个工作表名作为表名。请有人帮我指出我的错误。你知道吗
预期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;
类似地,迭代其他工作表并生成如上所述的语句。你知道吗
我认为以下几点应该会有所帮助。你知道吗
这不会做所有的事情,你可能会想调整它,但希望它做得足够,如果没有给你更具体的问题的基础。你知道吗
sheetnames
返回一个列表。你应该改变至
下面也是错的。您正试图迭代每个工作表,但在下一步中,您会将它分配给其他内容,从而丢失sh。你知道吗
相关问题 更多 >
编程相关推荐