java保存doc文件

22 篇文章 0 订阅
16 篇文章 0 订阅

1.直接上代码,这里的请求还是spring mvc请求,如果不懂的可以上网自己找一些相关的只是,代码如下:

	private Configuration configuration=null;
        @ResponseBody
	@RequestMapping(value = "/stats3-{type}")
	public void getDocYanBao( String ordNO,HttpServletRequest request, HttpServletResponse response, HttpSession session) {
		configuration = new Configuration();
		ZhenBao zhenBao = policyServcie.getYanbaoById(ordNO);//获取保存的数据
		configuration.setDefaultEncoding("UTF-8");
		String brand=zhenBao.getBrand();
		String series=zhenBao.getSeries();
		//判断是否为空
		try {   
                        //生成doc文档中的内容
			Map<String, Object> dataMap = new HashMap<String, Object>();
			if(zhenBao.getContractNO()==null){
				dataMap.put("contractNO","");
			}else{
				dataMap.put("contractNO", zhenBao.getContractNO());
			}
			
			configuration.setClassForTemplateLoading(this.getClass(), "/template"); // FTL文件所存在的位置
			Template template = configuration.getTemplate("moban.ftl");

			
			File outFile = new File(request.getSession().getServletContext().getRealPath("/template/success.doc"));
			Writer out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(outFile),"UTF-8"));
			template.process(dataMap, out);
			
	        // 下载本地文件
	        String fileName ="doc名字-明细.doc".toString(); // 文件的默认保存名字
	        fileName = new String(fileName.getBytes("UTF-8"),"ISO-8859-1");    
	        // 读到流中
	        InputStream inStream = new FileInputStream(request.getSession().getServletContext().getRealPath("/template/success.doc"));// 文件的存放路径
	        // 设置输出的格式
	        response.reset();
	        response.setContentType("bin");
	        response.addHeader("Content-Disposition", "attachment; filename=\"" + fileName + "\"");
	        // 循环取出流中的数据
	        byte[] b = new byte[100];
	        int len;
	        try {
	            while ((len = inStream.read(b)) > 0)
	                response.getOutputStream().write(b, 0, len);
	            inStream.close();
	        } catch (IOException e) {
	            e.printStackTrace();
	        }
	        out.close();
	        //删除文件
		outFile.delete();
		} catch (Exception e) {
			// TODO Auto-generated catch block
			logger.error(e, e);
		}
	}
至此,代码结束,感兴趣的小伙伴们可以自己尝试写一下。

这里的Configuration和Template引入的是freemarker.template.Configuration和freemarker.template.Template;

我这里用的maven,所以在线下载的jar文件,如果不是maven项目的话,可以在网上找一下相关的jar文件。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值