Java web 导出 Word

toby_java 2014-07-23 02:29:05
现在项目中遇到这样一个问题,客户需要将数据按固定格式导出,用的是freemarker的那种替换的思想。我现在是数据可以用Java se程序导出,但是移到Javaweb上就出了问题。第一:导出后的文件打开失败,提示错误。第二文件不能修改,提示已经在Java(TM)程序中打开,关闭tomcat后才能修改和删除。还有一个问题是我现在的效果是存在本地,想要的效果是用户点击按钮后能弹出提示下载。

求大神解决。急!急!急!

先在这里谢谢了。
...全文
244 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_24092343 2017-03-01
  • 打赏
  • 举报
回复
楼主 这个问题解决了没有 我也遇到 有的话发我邮箱一下 源码 邮箱:1654806836@qq.com 小弟感激不尽谢谢
qq_34300978 2016-03-15
  • 打赏
  • 举报
回复
引用 楼主 toby_java 的回复:
现在项目中遇到这样一个问题,客户需要将数据按固定格式导出,用的是freemarker的那种替换的思想。我现在是数据可以用Java se程序导出,但是移到Javaweb上就出了问题。第一:导出后的文件打开失败,提示错误。第二文件不能修改,提示已经在Java(TM)程序中打开,关闭tomcat后才能修改和删除。还有一个问题是我现在的效果是存在本地,想要的效果是用户点击按钮后能弹出提示下载。 求大神解决。急!急!急! 先在这里谢谢了。
楼主,我也想实现该需求,有解决办法了没?谢谢
tony4geek 2014-07-24
  • 打赏
  • 举报
回复
应该是没有结束。
lihuan2008a 2014-07-24
  • 打赏
  • 举报
回复

public class ExportUtil {
private Configuration configuration = null;	      
	    public ExportUtil(){  
	        configuration = new Configuration();  
	        configuration.setDefaultEncoding("UTF-8");  
	    }	
            public void createApplyInfoExcel(String modelPath,String modelName,String fileName,Map dataMap) throws UnsupportedEncodingException{  
	        Map<String,Object> excelMap=new HashMap<String,Object>();  
	        getData(excelMap,dataMap);  
	        configuration.setClassForTemplateLoading(this.getClass(),modelPath);  //FTL文件所存在的位置  
	        Template t=null;  
	        try {  
	            t = configuration.getTemplate(modelName); //文件名  
	        } catch (IOException e) {  
	            e.printStackTrace();  
	        }  
	        File outFile = new File("C:/"+fileName+".xls");  //生成文件的路径

	        //String path=System.getProperty("user.dir");	     //放web程序可用该路径
	        //File outFile=new File(path+fileName+".xls");        
	        Writer out = null;  
	        try {  
	            out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(outFile),"utf-8"));  
	        } catch (FileNotFoundException e1) {  
	            e1.printStackTrace();  
	        }  
	           
	        try {  	        	
	            t.process(excelMap, out);  
	        } catch (TemplateException e) {  
	            e.printStackTrace();  
	        } catch (IOException e) {  
	            e.printStackTrace();  
	        }  
	    }  

}
至于导出另存
可以用response.sendRedirect(request.getContextPath()+"/存放路径/"+fileName);
高坚果兄弟 2014-07-23
  • 打赏
  • 举报
回复
移植过去导出的数据和原来程序导出的数据是否一致,还有文件打开了要关闭。 要下载文件,必须把文件数据暴露给用户,比如把导出的文件放到web目录下通过地址直接下载,或参考楼上的方法
rumlee 2014-07-23
  • 打赏
  • 举报
回复
导出后文件打开失败和提示已经被打开,是因为你程序的输出流没有关闭。 你本地程序往web程序迁移,需要将文件流写入response输出流中,然后在浏览器中下载啊。

81,092

社区成员

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

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