java导出word文档

java导出word文档

1 先准备好一个导出Word文档的模板。
例如:
在这里插入图片描述
2.打开doc文件后 ,文件中的另存为,然后选择 保存类型为2003 版本的(*.xml)
在这里插入图片描述
3、 刚生成的xml文件里面比较乱,要整理一下,方法如下:
使用Eclipse/idea ,新建一个jsp ,把xml里面的东西覆盖更新刚才的jsp ,ctrl+Shift+F/ ctrl+alt+L 把文件整理一下,在拷贝出来,放到刚才的xml。文件内容就排好了,然后找到刚才我们写的name,sex,adress等地方,修改成为 n a m e , {name} ,name,{sex},R{adress} (这些其实就是占位符,等下我们把我们的实际数据以一对应 的替换掉),
注意:需要注意的是 在列表上方,需要定义集合遍历的名称,例如你后台定义的list 是

<#list listTotol as notice>
	例如时间:${notice.Day}
	关于自增序号的是:${notice_index+1}
	</list>

在这里插入图片描述
4.xml完成后.将格式改成ftl格式 (个人基本情况.xml ==>修改成:basic.ftl )(名字最好不要用中文)
5.将 basic.ftl 放到 com.xxx.template文件下(具体放的位置看项目具体结构是怎么样的)
6、导入jar包:freemarker-2.3.18.jar (可自行下载,或者问我要都行)

/**
     * @Description 查询得分表--导出通报
     * @Author xuwz
     * @Date 2021/11/16 14:14
     */
    @RequestMapping(value = "/exportScoreWord", method = RequestMethod.POST)
    public void exportScoreWord(@RequestBody CheckWorkQueryVO param, HttpServletResponse response) {

        try {

            SocreWordBean queryDetail = new SocreWordBean();
            queryDetail.setNjOnlineRate("100%");
            if (null == queryDetail) {

                return;
            }

            Configuration configuration = new Configuration();
            //获取保存ftl文件的文件夹
            configuration.setClassForTemplateLoading(this.getClass(), "/fileExportFormworks");
            configuration.setDefaultEncoding("utf-8");
            //获取ftl文件
            Template t = configuration.getTemplate("serviceInspection.ftl", "utf-8");

            response.reset();
            response.setHeader("Content-Disposition",
                    "attachment;filename=\"" + new String("亡人事故快报.doc".getBytes("GBK"), "iso8859-1") + "\"");
            response.setContentType("application/x-download;charset=GBK");
            response.setCharacterEncoding("utf-8");
            Writer out = response.getWriter();

            Map<String, Object> dataMap = new HashMap<>();
            dataMap.put("fatality", queryDetail);

            t.process(dataMap, out);
        }catch (Exception e){
            e.printStackTrace();
        }
    }
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值