繁体   English   中英

使用Python在Excel文件中导入MS SQL数据库数据

[英]Import ms sql database data in excel file using python

我正在尝试使用python将Excel文件中的ms sql数据库数据导入。 我不是在Excel工作表中按正确顺序获取数据。 例如,它显示的是第1列数据,然后是第3列,然后是第2列,然后是第4列,依此类推。 我正在使用以下脚本:

import pyodbc
import csv
connection = pyodbc.connect("Driver={SQL Server Native Client 11.0};"
                  "Server=MS-DC-06,49208;"
                  "Database=****;"
                  "uid=**;pwd=***")
cursor = connection.cursor()
cursor.execute("select top 10 * from Api_NotificationEntry")
data=cursor.fetchall()
for col in data:
    with open('dataTester.csv', 'a', newline='') as fp:
      a= csv.writer(fp, delimiter=',')
      a.writerow({col[0],col[1]})
cursor.close()
connection.close()

它应该显示如下数据:

10 2689 
11 2689 
12 2689 
13 2689 
14 2689 
15 2689 
16 2689 
8 2673 
17 2689 
19 3083 

但是它在excel表中显示如下:

Col1    Col2
65509   
10  
2689    
65509   
10  
2689    
65509   
2689    10
2689    65509
6218    65509
2689    10
2689    65509
6218    65509
2689    10
2689    11
2689    12
2689    13
2689    14
2689    15
16  2689
8   2673
17  2689
3083    19

这就是excel屏幕截图中的样子

这就是记事本中的样子

从数据库中获取数据后,我正在使用python脚本过滤它们,

a.writerow({col[0],col[1]})

这没有按正确的顺序在csv文件中写入数据,因此解决方案是使用sql查询从数据库中获取经过过滤的数据,而不是在python脚本中进行过滤。 这样就解决了问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM