如何在Python中将Sql Server结果导出到Excel

如何在Python中将Sql Server结果导出到Excel,python,Python,我正在使用我们自己的框架 我想使用ion python将sql server结果集(查询结果集)导出到excel 在python文件中,我可以调用sql查询结果 然后我想将该查询结果导出到带有标题的excel中 这意味着,一旦调用python文件,该查询结果应保存为excel电子表格 请任何人帮助我正确地完成此操作?请查看以下模块: -连接到SQL Server -写入Excel电子表格 如果在安装这些模块并阅读文档后仍然存在问题,欢迎您通过在新问题中发布脚本以及看到的任何错误消息来请求进一

我正在使用我们自己的框架

我想使用ion python将sql server结果集(查询结果集)导出到excel

在python文件中,我可以调用sql查询结果

然后我想将该查询结果导出到带有标题的excel中

这意味着,一旦调用python文件,该查询结果应保存为excel电子表格


请任何人帮助我正确地完成此操作?

请查看以下模块:

  • -连接到SQL Server
  • -写入Excel电子表格

如果在安装这些模块并阅读文档后仍然存在问题,欢迎您通过在新问题中发布脚本以及看到的任何错误消息来请求进一步帮助。:)

我以前在这方面取得了巨大的成功,它简单而全面,可以在不被问题绊倒的情况下继续工作。

我会使用(用于与数据库交互)和(用于操作数据并导出为电子表格)

下面是一个简单的例子:

import pyodbc
import pandas as pd

cnxn = pyodbc.connect(< db details here >)
cursor = cnxn.cursor()
script = """
SELECT * FROM my_table
"""

cursor.execute(script)

columns = [desc[0] for desc in cursor.description]
data = cursor.fetchall()
df = pd.DataFrame(list(data), columns=columns)

writer = pd.ExcelWriter('foo.xlsx')
df.to_excel(writer, sheet_name='bar')
writer.save()
导入pyodbc
作为pd进口熊猫
cnxn=pyodbc.connect()
cursor=cnxn.cursor()
script=”“”
从my_表中选择*
"""
cursor.execute(脚本)
columns=[desc[0]表示游标中的desc.description]
data=cursor.fetchall()
df=pd.DataFrame(列表(数据),列=列)
writer=pd.ExcelWriter('foo.xlsx')
df.to_excel(书写器,工作表_name='bar')
writer.save()
通读这些文件,你会没事的

==更新==

对于较新版本的pandas,这是处理SQL查询的更好方法:

import pyodbc
import pandas as pd

cnxn = pyodbc.connect(< db details here >)
script = """
SELECT * FROM my_table
"""

df = pd.read_sql_query(script, cnxn)
导入pyodbc
作为pd进口熊猫
cnxn=pyodbc.connect()
script=”“”
从my_表中选择*
"""
df=pd.read\u sql\u查询(脚本,cnxn)

你有什么东西可以用吗?查询数据库?或者导出到excel?我有sql quary结果。我需要使用python代码将quary导出到excel。。我没有任何python代码,yetI试图使用此脚本,但出现了错误,因此在发布到此线程后:解决方案是更改df=pd.read\u sql\u query(script,cnxn),这很有效……感谢您的提示!我不记得当时我使用的pandas是什么版本,但它肯定很旧,这可能是它不起作用的原因。还需要运行
pip安装openpyxl
。非常感谢。您只需在pandas dataframe中获取查询结果并将其放入Excel文件中即可。这确实为我带来了好处
import pandas as pd
import xlsxwriter
import pyodbc


conn = pyodbc.connect('Driver={SQL Server}; Server=ServerIP; uid=UID; pwd=Password; Trusted_Connection=No;')
 with pd.ExcelWriter("Output.xlsx", engine="xlsxwriter", options = {'strings_to_numbers': True, 'strings_to_formulas': False}) as writer:
        try:
            df = pd.read_sql("Select * from Orders", conn)
            df.to_excel(writer, sheet_name = "Sheet1", header = True, index = False)
            print("File saved successfully!")
        except:
            print("There is an error")