使用 Python 将数据从 MSSQL 导出到 Excel“模板”并以新名称保存
Posted
技术标签:
【中文标题】使用 Python 将数据从 MSSQL 导出到 Excel“模板”并以新名称保存【英文标题】:Export data from MSSQL to Excel 'template' saving with a new name using Python 【发布时间】:2021-08-03 22:10:58 【问题描述】:我在这里绞尽脑汁,已经阅读了很多教程、网站、示例代码等。有些东西不适合我。 这是我想要的最终状态。
-
从 MSSQL 中选择数据 - 已排序,不是问题
打开 Excel 模板(xlsx 文件) - 已排序,没问题
将数据导出到此 Excel 模板并使用其他名称保存 - 问题。
到目前为止我所取得的成就:(可行)
-
我可以从 DB 中提取数据。
我可以使用 pandas 将该数据写入 Excel,我的代码行是:
pd.read_sql(script,cnxn).to_excel(filename,sheet_name="Sheet1",startrow=19,encoding="utf-8")
filename 变量是我在每次 for 循环运行时创建的新文件。
我的挑战是:
-
数据需要导出到预定义的模板(模板的格式必须存在于每个文件中)
我可以打开文件,也可以写入文件,但我不知道如何通过 for 循环的每次迭代以不同的名称保存该文件
在我的 for 循环中,我使用以下代码:
#这不起作用
pd.read_sql(script,cnxn)
writer = pd.ExcelWriter(SourcePath) #opens the source document
df.to_excel(writer)
writer.save() #how to I saveas() a different file name?????
我们将非常感谢您的帮助。
【问题讨论】:
pd.ExcelWriter
用于指定目标文件,不加载某些模板。您所做的会将数据附加到现有文件中
【参考方案1】:
你的方法是有效的。问题是您不需要在从数据库中读取数据后立即将数据写入 excel 文件。我的建议是先将数据读入不同的数据框。
df1 = pd.read_sql(script)
df2 = pd.read_sql(script)
df3 = pd.read_sql(script)
然后,您可以将所有数据框一起写入 excel 文件。可以参考这个link。
我希望这个解决方案可以帮助你。周末愉快
【讨论】:
以上是关于使用 Python 将数据从 MSSQL 导出到 Excel“模板”并以新名称保存的主要内容,如果未能解决你的问题,请参考以下文章