我是靠谱客的博主 优秀自行车,这篇文章主要介绍Python3,多种方法,同时执行多条SQL语句,并把查询结果分别写入不同Sheet页,妥妥的学到了。1、引言2、代码实战3、总结,现在分享给大家,希望可以做个参考。

SqlServer查询结果写入多个Sheet页

  • 1、引言
  • 2、代码实战
    • 2.1 openpyxl写入excel
      • 2.1.1 安装
      • 2.1.2 代码
    • 2.2 pandas写入excel
      • 2.2.1 安装
      • 2.2.2 代码
  • 3、总结

1、引言

小屌丝:鱼哥,我想请教一个问题。
在这里插入图片描述
小鱼:国庆假期你经历了什么,让你变得如此的 “善良”?
小屌丝:别这么说,我一直很善良,至少,很正直…
小鱼:打住,直接点, 你有什么需要帮助的?
小屌丝:我就是想把查询的结果也入到excel表中
小鱼:然后呢?
小屌丝:sqlserver数据库。
小鱼:…好吧,还有其他要求吗?
小屌丝:没有了。
小鱼:OK,我就花费几分钟,给你整一个。
在这里插入图片描述

2、代码实战

2.1 openpyxl写入excel

2.1.1 安装

凡是涉及第三方库,必须需要安装,
老规矩,直接pip安装

复制代码
1
2
3
pip install openpyxl pip install pymssql

其它安装方式,直接看这两篇:

  • Python3,选择Python自动安装第三方库,从此跟pip说拜拜!!
  • Python3:我低调的只用一行代码,就导入Python所有库!

2.1.2 代码

代码示例

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
# -*- coding:utf-8 -*- # @Time : 2022-10-10 # @Author : Carl_DJ ''' 实现功能: 1、python直接链接sqlserver数据库,读取数据库内容 2、执行 查询结果,并写入到excel表中 应用模块: pymssql,os,openpyxl ''' import os import pymysql #mysql数据库链接 import pymssql #sqlserver数据库链接 import openpyxl #输出文件夹 outfile_path = './data' #如果没有outfile_path 这个文件夹,就自动创建 if not os.path.exists(outfile_path): os.mkdir(outfile_path) #输出文件名称 filename = r'SQLtest.xlsx' file_path= os.path.join(outfile_path,old_filename) #创建数据库链接 #链接SqlServer conn = pymssql.connect(host = "localhost", port = 3306, user = "", psd = "", database = "") if conn: print("数据库链接成功") time.sleep(3) #sql查询语句 sql = "select UUID,KEYID,TYPE,NAME,PRICE from KEY_INFO WHERE NAME LIKE '%测试商品名称'" #创建游标 cur = conn.cursor() #执行sql语句 cur.execute(sql) #返回查询结果 result = cur.fetchall() #创建一个工作簿对象 wb = openpyxl.Workbook() #定义sheet名 Key_Info_sheet = wb.create_sheet('KEY_INFO ',0) #获取默认sheet页 # Key_Info_sheet = book.active #获取表头信息 h1 = [filed[0] for filed in cur.description] Key_Info_sheet.append(h1) for i in result: Key_Info_sheet.append(i) wb.save(file_path) # 关闭数据库链接 cur.close() conn.close()

执行结果
在这里插入图片描述

嗯,这就非常完美的写入excel了。

2.2 pandas写入excel

小屌丝:鱼哥,我这一次要执行多个SQL语句,
小鱼:… 你不是说没有了吗
小屌丝:突然想起来的。
小鱼:好吧,还有其他的要求吗?
小屌丝:然后把每个SQL查询结果写入不同的sheet页
在这里插入图片描述

小鱼:xxxxxx!!还有吗????!!!
小屌丝:没有了。
小鱼:有也没有。

关于小屌丝提的要求, 我换一个写法,毕竟,多学几个知(姿 )识( ),百利而无一害。
在这里插入图片描述

2.2.1 安装

这次有pandas来写。
所以,第一步,安装

复制代码
1
2
pip install pandas

其它安装方式,直接看这两篇:

  • Python3,选择Python自动安装第三方库,从此跟pip说拜拜!!
  • Python3:我低调的只用一行代码,就导入Python所有库!

2.2.2 代码

sql文档
在这里插入图片描述

代码示例

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
# -*- coding:utf-8 -*- # @Time : 2022-10-10 # @Author : Carl_DJ ''' 实现功能: 1、python直接链接SqlServer数据库,实现SQL查询 2、同时执行多条sql语句,查询结果分别写入不同的sheet页中; 应用模块: pandas,pymssql,os,time ''' import pandas as pd from pandas.io import sql import pymssql import time,os #设置时间戳 now = time.strftime("%Y_%m_%d-%H%M%S",time.localtime()) print(f'执行时间:{now}') #创建数据库链接 #链接SqlServer conn = pymssql.connect(host = "localhost", port = 3306, user = "", psd = "", database = "") if conn: print("数据库链接成功") time.sleep(3) #输出文件夹 file_path = './data' #如果没有outfile_path 这个文件夹,就自动创建 if not os.path.exists(file_path): os.mkdir(file_path) #输出文件格式 Outfile_name = ( 'SqlsTest' + now + '.xlsx') #读取sql文件名称 sqls_name = r'SqlsFile.txt' #sql执行脚本文件(参数化路径) MCsql_file = os.path.join(file_path,MCsql_name) #输出文件夹路径 Outfile_path = os.path.join(file_path,Outfile_name) #把查询结果写入不同的sheet页,对sheet页进行命名 sheet_names = ['KEY_INFO','PRO_INFO'] #定义读取sql方法,返回sql语句 def sqls(MCsql_file): global sqlstrs with open(MCsql_file,'r',encoding='utf-8') as f: #每个sql之间,以“;”作为分隔符 sqlstrs = f.read().split(';') #定义数据查询方法 def quert_method(sql_str): #设置全局变量 global df df = pd.read_sql(sql_str,con=conn) #执行程序 if __name__ == '__main__': sqls(MCsql_file) #写入excel文件 with pd.ExcelWriter(Outfile_path) as writer: for i in range(0,len(sqlstrs)): quert_method(sqlstrs[i]) df.to_excel(writer,sheet_name=sheet_names[i],index=False,header=True) print("数据写入完成!") # 关闭数据库链接 conn.close() print("数据库链接关闭!")

执行结果
在这里插入图片描述

3、总结

看到这里,今天的分享差不多就完成了。
今天主要通过链接SqlServer数据库,把查询数据结果写入到excel表中。
同时,应用openpyxl 和pandas两个模块,分别对excel的操作。
如果对pandas不调了解,可以阅读小鱼的这篇博文

  • 数据分析之Pandas从入门到放弃:代码+实战,9分钟带你推开Pandas大门!!!
  • Python3,Pandas 5行代码实现对excel 读写操作!
  • Python3,pandas自动处理exlce数据及yagmail邮件自动发送
  • Python3,3行代码,把excel转换成任意格式的word文档,老板直接给我涨薪10K!!!
    这里就不列举了,如果想学习更多的数据分析,可以点击小鱼的数据分析专栏

我是小鱼

  • CSDN博客专家
  • 51Testing认证讲师

关注我,带你学习Python领域更多更专业的技能。

最后

以上就是优秀自行车最近收集整理的关于Python3,多种方法,同时执行多条SQL语句,并把查询结果分别写入不同Sheet页,妥妥的学到了。1、引言2、代码实战3、总结的全部内容,更多相关Python3,多种方法,同时执行多条SQL语句,并把查询结果分别写入不同Sheet页,妥妥内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(57)

评论列表共有 0 条评论

立即
投稿
返回
顶部