5

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

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

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

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

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

请任何人都可以帮助我正确地做到这一点?

4

4 回答 4

16

我会用pyodbc(用于与数据库交互)和pandas(用于操作数据和导出为电子表格)来做到这一点。

这是一个简单的例子:

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()

通读文档,你会没事的。

== 更新 ==

对于更新版本的 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)
于 2013-09-24T09:36:56.723 回答
2
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")
于 2019-12-04T05:26:46.847 回答
0

看看以下模块:

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

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

于 2013-09-24T09:22:44.937 回答
0

我之前在openpyxl上取得了巨大的成功,他们的教程很简单,但足够全面,可以在不被任何陷阱绊倒的情况下开始学习。

于 2013-09-24T09:23:40.293 回答