`
JaNer
  • 浏览: 43961 次
  • 性别: Icon_minigender_1
  • 来自: 昆明
社区版块
存档分类
最新评论

关于Struts环境下POI与Excel交互的问题

阅读更多
求教:
Struts1.X环境下,POI与Excel交互的问题.
说明:我已经能够根据数据生成Excel文件后保存到相应的目录.
希望改进:
1.点击导出按钮后,是否能跳出一个像下载一样的对话框,然后根据我选择的保存路劲来保存Excel文件,而不是在程序中写死.
2.是否可以先生成一个模板,然后我根据模板来填充数据。这样的话对负责表头格式的Excel处理将会很方便。
如果有相应的代码的话,能贴出来分享一下是最好不过的了。
先谢过了!
鞠躬!
分享到:
评论
9 楼 myyate 2007-11-17  
java虫 写道
1.弹出对话框,用户保存选择路径,会保存到需要的目录,不知道你说的是什么意思

2.可以自己手工作或程序生成一个模板,放到某个目录,导出时读那个excel往里写数据就行了,没什么特别的。

你要是嫌复杂,他的第二个方法就可以实现了,不过如果模板要生成很多的话,手工做一个模板不太现实。
8 楼 myyate 2007-11-17  
1.我是要将Excel下载到客户端,不明白和SmartUpload有何关系!我是想点了到处按钮后,跳出一个像点了下载链接后的下载对话窗口,然后选择保存路劲进行保存Excel.
------------------------------------------
SmartUpload也有下载功能的。
SmartUpload su = new SmartUpload();
su.initialize(pageContext);
// 设定contentDisposition为null以禁止浏览器自动打开文件,
//保证点击链接后是下载文件。
su.setContentDisposition(null);
你生成到一个目录下然后在用SmartUpload下载,这个我以前做过,也是从页面导出数据到excel然后下载。
7 楼 JaNer 2007-11-17  
引用
1, 你的意思我理解没有错误的话就是点击就弹出保存对话框,这个是可以的,生成到一个目录然后用smartupload,他有一个属性是设置不自动打开而是弹出对话框。
2, 这个我帮公司刚刚做了,问了个问题刚刚被评为新手帖,郁闷了 不知道你具体情况,不过我们是这样做的,你把excel表头,一般都是汉字,定义在一个xml中(当然可能还有其他信息或者读表直接生成),然后根据xml用POI生成模板到一个固定的目录供用户下载填写数据。上传解析存入DB。

1.我是要将Excel下载到客户端,不明白和SmartUpload有何关系!我是想点了到处按钮后,跳出一个像点了下载链接后的下载对话窗口,然后选择保存路劲进行保存Excel.
2.你说的这种实现方式好像过于复杂了吧。
引用
楼主所说的第一个问题我遇到过,好像无法通过页面直接向客户端的硬盘写东西。最后只好现在服务器的固定路径下生成文件,然后通过浏览器再让他下载。

这个办事似乎很可行!
6 楼 myyate 2007-11-16  
引用
1.点击导出按钮后,是否能跳出一个像下载一样的对话框,然后根据我选择的保存路劲来保存Excel文件,而不是在程序中写死.
2.是否可以先生成一个模板,然后我根据模板来填充数据。这样的话对负责表头格式的Excel处理将会很方便。

1, 你的意思我理解没有错误的话就是点击就弹出保存对话框,这个是可以的,生成到一个目录然后用smartupload,他有一个属性是设置不自动打开而是弹出对话框。
2, 这个我帮公司刚刚做了,问了个问题刚刚被评为新手帖,郁闷了 不知道你具体情况,不过我们是这样做的,你把excel表头,一般都是汉字,定义在一个xml中(当然可能还有其他信息或者读表直接生成),然后根据xml用POI生成模板到一个固定的目录供用户下载填写数据。上传解析存入DB。
5 楼 raykcn 2007-11-16  
mocoffee 写道

好像无法通过页面直接向客户端的硬盘写东西



这个可以实现的, vbscript就行..! 只是我认为麻烦些..!
4 楼 raykcn 2007-11-16  
JaNer 写道
求教:
1.点击导出按钮后,是否能跳出一个像下载一样的对话框,然后根据我选择的保存路劲来保存Excel文件,而不是在程序中写死.


不用poi做..用application/vnd.ms-excel做,简单方便!

JaNer 写道

2.是否可以先生成一个模板,然后我根据模板来填充数据。这样的话对负责表头格式的Excel处理将会很方便。


如果用application/vnd.ms-excel做,不会有你说的这个问题.


个人感觉导入使用POI比较不错...导出如果没有及特殊的情况..poi相对来说好麻烦的!
3 楼 mocoffee 2007-11-16  
楼主所说的第一个问题我遇到过,好像无法通过页面直接向客户端的硬盘写东西。最后只好现在服务器的固定路径下生成文件,然后通过浏览器再让他下载。
2 楼 kyo100900 2007-11-15  
1.用Servlet, 里面使用IO流. 例:<br/>
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {<br/>


String model = request.getParameter("fileName");<br/>

logger.info("model is: " + model);<br/>

String fileName = new String(model.getBytes("GBK"), "ISO-8859-1");<br/>

logger.info("fileName is: " + fileName);<br/>


response.addHeader("content-type", "application/x-msdownload;");<br/>

response.addHeader("content-disposition", "attachment; filename="
+ fileName);<br/>

String path = this.getServletContext().getRealPath("/");<br/>

String downloadFile = path + "xml/" + model + ".zip";<br/>

InputStream inputStream = new FileInputStream(downloadFile);<br/>

OutputStream toClient = response.getOutputStream();<br/>


byte[] buffer = new byte[1024];<br/>

int i = -1;<br/>

while ((i = inputStream.read(buffer)) != -1) {<br/>

toClient.write(buffer, 0, i);<br/>

}<br/>


toClient.flush();<br/>

toClient.close();<br/>

inputStream.close();<br/>


}<br/>


就可以下载, 然后选择保存路径了<br/>
1 楼 java虫 2007-11-15  
1.弹出对话框,用户保存选择路径,会保存到需要的目录,不知道你说的是什么意思

2.可以自己手工作或程序生成一个模板,放到某个目录,导出时读那个excel往里写数据就行了,没什么特别的。

相关推荐

Global site tag (gtag.js) - Google Analytics