将sql 查询结果导出到excel

在平时工作中经常会遇到,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

原文地址:https://www.cnblogs.com/vitas/p/8127797.html