使用 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“模板”并以新名称保存的主要内容,如果未能解决你的问题,请参考以下文章

如何利用Navicat导入/导出mssql中的数据

如何在将数据框导出到 mssql 时指定目标数据库

如何将单个 MSSQL 表导出到 MySQL?

使用“加载文件数据”时将真假字符串转换为布尔值

如何将Oracle数据库转为MsSql

一行导出所有任意微软SQL server数据脚本-基于Python的微软官方mssql-scripter工具使用全讲解