将sql 查询结果导出到excel

时间:2024-03-09 21:58:15

在平时工作中经常会遇到,sql 查询数据之后需要发送给业务人员,每次都手工执行脚本然后拷贝数据到excel中,比较耗时耗力,可以考虑自动执行查询并将结果邮件发送出来。

分两步实现:

1、执行查询将结果保存为excel,这里使用存储过程

 1 Create procedure [dbo].[pr_Dept_Bak]
 2 
 3 as
 4 
 5 begin
 6 
 7 ---这里可以增加对数据表的查询条件或更多的数据处理;
 8 
 9 ---将结果放入一个新的数据表,然后将这个新表导出EXCEL文件;
10 
11 declare @file_path varchar(200);--导出EXCEl文件的路径;
12 
13 declare @file_name varchar(200);--导出EXCEl的文件名;
14 
15 declare @exec_sql  varchar(200);--SQL语句;
16 
17 ---分开定义是为了以后修改路径或文件名更方便。
18 
19 set @file_path = \'E:\Dept_Bak\\'
20 
21 set @file_name = \'dept\' + CONVERT(varchar(100), GETDATE(), 112)+\'.xls\'
22 
23 set @exec_sql = \'select * from book.dbo.users_dept\'  ---数据表使用的完整路径;
24 
25 set @exec_sql = \' bcp "\'+@exec_sql+\'" queryout "\'+@file_path+\'\'+@file_name+\'" -c -T -U "sa" -P "SQLpassword"\';
26 
27 ----U "sa" -P "SQLpassword" 这是数据库的sa账号和密码;
28 
29 exec master..xp_cmdshell @exec_sql
30 
31 end
View Code

 

https://github.com/xiiiblue/report-man

https://github.com/chenhuican/data_analysis

 

http://www.cnblogs.com/jhxk/articles/4887003.html