利用poi后台导出datagrid的数据到excel文件?现在能够将数据存到某个固定路径下,怎么再让他下载到任意路径?

发布于 2021-12-08 14:20:02 字数 114 浏览 892 评论 9

利用poi后台导出datagrid的数据到excel文件中,现在能够将数据存到某个固定路径(d:excel导出数据.xls)下,现在怎么能够实现任意路径的下载?而且还要在下载完成后把文件删掉。在线求救。希望大神指点

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(9

坏尐絯 2021-12-10 02:05:05

我试试看看,谢谢大神指点

成熟稳重的好男人 2021-12-10 01:59:51

这样还是不行,还是导不出数据来。

终陌 2021-12-10 01:50:38

这样肯定是可以的

各自安好 2021-12-10 01:27:30

File file = new File("你生成的文件路径");

byte[] buffer = null;

FileInputStream fis = new FileInputStream(file);

ByteArrayOutputStream bos = new ByteArrayOutputStream();

byte[] b1 = new byte[10*1024];//每次读取10个字节

int n;

while ((n = fis.read(b1)) != -1) {

bos.write(b1, 0, n);

}

fis.close();

bos.close();

buffer = bos.toByteArray();

file.delete(); //删除该文件,必须要先关闭流之后才能删除,不然删除无效

return buffer;

以上代码返回的是字节数组,下面是通过浏览器输出该文件:

OutputStream os=response.getOutputStream();

response.setContentType("application/pdf");
        response.setHeader("Content-Disposition", "attachment;filename=" + new String("合并清单.pdf".getBytes("UTF-8"), "ISO-8859-1"));
        os.write(buffer);
        os.flush();
        os.close();

反话 2021-12-10 01:16:39

将图一中的ByteArraryOutputStream 改成 response.getOutputStread. 用Response的流。

归途 2021-12-10 00:43:30

图1中没有ByteArrayout

离不开的别离 2021-12-10 00:38:47

-

图1  

图2 

图3 导出前台代码

现在遇到的问题是,为什么不能直接将图2写在图1中标红色的后面?我现在写了两个单独的action,让其中一个执行成功后,去执行另外一个action。很奇怪为什么不能将两个action里面的代码进行合并?大神指点。

眉黛浅 2021-12-09 23:53:37

我也这么写了,但是就是导不出数据来。

静谧 2021-12-09 23:42:27

不保存到文件,直接写到 response 流中

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文