利用poi后台导出datagrid的数据到excel文件?现在能够将数据存到某个固定路径下,怎么再让他下载到任意路径?
利用poi后台导出datagrid的数据到excel文件中,现在能够将数据存到某个固定路径(d:excel导出数据.xls)下,现在怎么能够实现任意路径的下载?而且还要在下载完成后把文件删掉。在线求救。希望大神指点
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(9)
我试试看看,谢谢大神指点
这样还是不行,还是导不出数据来。
这样肯定是可以的
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();
将图一中的ByteArraryOutputStream 改成 response.getOutputStread. 用Response的流。
图1中没有ByteArrayout
图1
图2
图3 导出前台代码
现在遇到的问题是,为什么不能直接将图2写在图1中标红色的后面?我现在写了两个单独的action,让其中一个执行成功后,去执行另外一个action。很奇怪为什么不能将两个action里面的代码进行合并?大神指点。
我也这么写了,但是就是导不出数据来。
不保存到文件,直接写到 response 流中