java批量数据导出多个excel,为什么老是只生成一个excel文件

java批量数据导出多个excel,为什么老是只生成一个excel文件,第1张

java servlet一个请求,只能有一个返回输出流,所以一次只能下载一个文件

如果确实需要下载多个Excel文件,可以先在本地生成多个Excel文件,然后使用zip压缩,再通过一个返回输出流将zip压缩包返回给客户端。我也遇到同样的问题,这个是在别人那搜到的。

1、编写SQL存储过程(procedure);

2、使用SQL的BCP与exec masterxp_cmdshell命令完成指定数据表或内容导出;

3、使用SQL Server代理作业实现定时自动执行导出。

下面是过程详解,若你还有更好的方式,盼告知。

工具/原料

SQL Server Management Studio

BCP与exec masterxp_cmdshell

方法/步骤

1

Create一个新的procedure,在开头可以做一个判断来决定什么时候执行数据结果导出,下面来看看这个存储过程:

Create procedure [dbo][pr_Dept_Bak]

as

begin

---这里可以增加对数据表的查询条件或更多的数据处理;

---将结果放入一个新的数据表,然后将这个新表导出EXCEL文件;

declare @file_path varchar(200);--导出EXCEl文件的路径;

declare @file_name varchar(200);--导出EXCEl的文件名;

declare @exec_sql varchar(200);--SQL语句;

---分开定义是为了以后修改路径或文件名更方便。

set @file_path = 'E:\Dept_Bak\'

set @file_name = 'dept' + CONVERT(varchar(100), GETDATE(), 112)+'xls'

set @exec_sql = 'select from bookdbousers_dept' ---数据表使用的完整路径;

set @exec_sql = ' bcp "'+@exec_sql+'" queryout "'+@file_path+''+@file_name+'" -c -T -U "sa" -P "SQLpassword"';

----U "sa" -P "SQLpassword" 这是数据库的sa账号和密码;

exec masterxp_cmdshell @exec_sql

end

2

以上存储过程pr_Dept_Bak建立,需要导出的数据表是users_dept,导出的位置是数据库本地计算机的E:\Dept_Bak文件夹下。需要将这个文件夹建立好。

3

准备好之后,我们需要进行测试一下pr_Dept_Bak是否成功,执行pr_Dept_Bak存储过程,可以看到执行结果是成功的,若这里不成功,则需要检查一下带存储过程中的BCP与exec masterxp_cmdshell命令的格式是否正确。

4

导出功能实现了,现在需要设置定时自动执行导出。在SQL Server Management Studio中,SQL Server代理-作业-新建作业。

5

为新的作业设定名称,可以中文或英文,只是为了方便区分其它作业。

6

在步骤中,点击新建作业执行步骤。即需要定时自动执行的存储过程pr_Dept_Bak。为什么使用的存储过程,也是因为以后需要添加或修改功能更方便,而且存储过程更文件测试问题所在。

7

注意选择数据库,命令中输入exec pr_Dept_Bak 执行存储过程。因为命令语句都在存储过程中,所以这里就相对比较简单。

8

最后就是设定定时自动执行计划,如每天的XX时间自动执行这个存储过程,或间隔多少小时导出SQL表一次。

9

作业建立之后,则可以执行作业步骤来测试一次,是成功,右键点击建立的作业pr_Dept_Bak,作业开始步骤。

10

作业成功,若不成功,可以看到错误提示,可以在作业活动监视器中查看作业失败的原因,针对解决问题。

11

到E:\Dept_Bak文件夹下,可以看到导出的EXCEL文件了,接下来还可以使用的SQL的邮件功能,自动将这个EXCEL文件发送给指定的邮箱接收者。

以上就是关于java批量数据导出多个excel,为什么老是只生成一个excel文件全部的内容,包括:java批量数据导出多个excel,为什么老是只生成一个excel文件、怎么定时自动将SQL数据导出为Excel文件、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10184663.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存