poi生成excel

topxebec 2007-09-24 03:28:38
poi生成excel后 怎样弹出提示框 让用户选择保存还是打开,而不是直接打开文件?
...全文
648 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
tanghai753 2008-09-14
  • 打赏
  • 举报
回复
我最后再补充一点:

先写上 response.setContentType("application/x-download");
String filedisplay = "test.xls";
filedisplay = URLEncoder.encode(filedisplay,"UTF-8");
//filedisplay即--下载对话框上要显示的名字,
response.addHeader("Content-Disposition","attachment;filename=" + filedisplay);

然后....生成你的excel

再然后就是:peter_synnex大哥说的
OutputStream out = response.getOutputStream();
workbook.write(out);
out.flush();
out.close();

呵呵,我刚解决了这个问题.
tanghai753 2008-09-14
  • 打赏
  • 举报
回复
peter_synnex 兄 正解,小弟感激涕零!!! 小弟向你学习了.
peter_synnex 2007-12-25
  • 打赏
  • 举报
回复
在servlet里调用poi生成excel文件,然后用
OutputStream out = response.getOutputStream();
workbook.write(out);
out.flush();
out.close();
topxebec 2007-09-26
  • 打赏
  • 举报
回复
22222222222
wshsm 2007-09-25
  • 打赏
  • 举报
回复
这纯粹是程序逻辑的问题,跟POI完全没关系
topxebec 2007-09-25
  • 打赏
  • 举报
回复
我正在用POI开发这东西。网上一搜一堆啊!
--------------------------------------
是一搜一堆。。没搜到怎么把生成的excel先不写到硬盘上 让用户选择之后才打开或者保存到指定路径。。。麻烦指点下
criper 2007-09-25
  • 打赏
  • 举报
回复
我正在用POI开发这东西。网上一搜一堆啊!
wshsm 2007-09-25
  • 打赏
  • 举报
回复
应该是点击按钮以后先让用户选择是打开还是保存(选择路径)然后在用POI处理吧?如果是保存就直接把文件流写到原先设定好的路径就行了
topxebec 2007-09-25
  • 打赏
  • 举报
回复
11111111111111111
topxebec 2007-09-25
  • 打赏
  • 举报
回复
我想先在内存里生成excel文件 弹出一个最普通的对话框 让选择 打开/保存/取消 是不是应该有简单的做法
而不是一定要自己做个界面加按钮让用户提前选择吧。。
topxebec 2007-09-24
  • 打赏
  • 举报
回复
哦 先谢谢prun
可是做的是一个eclipse插件形式的东西 点击一个swt的button生成excel并打开(弹出提示框 让选择打开或者保存)
prun 2007-09-24
  • 打赏
  • 举报
回复
通过设定HTTP response header中的content-disposition属性应该可以弹出提示框的。
prun 2007-09-24
  • 打赏
  • 举报
回复
关于这个问题,有下载前询问(是打开文件还是保存到计算机)和通过IE浏览器直接选择相关应用程序插件打开两种方式:
①response.setHeader("Content-disposition","attachment;filename="+ "Example.xls" );
②response.setHeader("Content-Disposition", "inline; filename=" + fliename)
点击打开会在IE中打开。
乌拉拉_ 2007-09-24
  • 打赏
  • 举报
回复
没用过poi,以前用jxl的时候,就是把文件内容写到ByteArray里,浏览器得到后就会弹出保存还是打开的对话框……

response.setContentType("application/msexcel");
String header = "attachment;filename=output.xls";
response.addHeader("Content-Disposition", header);
ByteArrayOutputStream baos = new ByteArrayOutputStream();// 定义byte数组输出流用于写入excel文件

//下面就是具体怎么操作api让它写excel文件了
.
.
.
//写完后
byte[] fileData = baos.toByteArray();// 转换为byte数组
OutputStream os = response.getOutputStream();// 得到输出流
os.write(fileData);// 写入文件
os.close();// 关闭输出流对象
topxebec 2007-09-24
  • 打赏
  • 举报
回复
试了prun的方法。。还是不行
而且不能去让用户都先去修改这个选项再使用吧。。
prun 2007-09-24
  • 打赏
  • 举报
回复
这不是在代码中设定的,而是在工具 -〉文件选项 -〉文件的种类-〉找到XLS Microsoft Excel 工作溥 -〉点击详细设定按钮 -〉选中下载后确认打开选项,OK保存后。

应该就可以了!
约翰羊 2007-09-24
  • 打赏
  • 举报
回复
没用过poi生成excel
帮顶

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧