我的代码是从文本文件中读取SQL查询并在python中逐个执行它。我正在尝试在同一个excel中保存查询结果,但是在不同的选项卡/工作表中
import pyodbc as hive
import pandas as pd
filename =r'C:\Users\krkg039\Desktop\query.txt'
fd=open(filename,'r')
sqlFile=fd.read()
fd.close()
# all SQL commands (split on ';')
sqlCommands = sqlFile.split(';')
# Execute every command from the input file
for command in sqlCommands:
try:
con = hive.connect("DSN=SFO-LG", autocommit=True)
df = pd.read_sql(command,con)
print(df)
print(command)
writer = pd.ExcelWriter('Result.xlsx')
df.to_excel(writer, sheet_name='Test',index=False)
writer.save()
except:
print("Command skipped: ")
在我想要python的代码中,为每个执行的SQL查询添加工作表到现有的excel。
基本上python不应该每次都替换我的excel
我不知道这是不是问题,但我想如果你把writer = pd.ExcelWriter('Result.xlsx')
从for循环中拿出来,那么你每次都不会重新定义它。还可以使用循环使工作表的名称动态化,这样您就不会覆盖它。
writer = pd.ExcelWriter('Result.xlsx')
for command in sqlCommands:
try:
con = hive.connect("DSN=SFO-LG", autocommit=True)
df = pd.read_sql(command,con)
print(df)
print(command)
df.to_excel(writer, sheet_name='Test'+command,index=False)
writer.save()
except:
print("Command skipped: ")