首页 > 编程语言 >java 根据word xml模板生成word(个人v2版本)

java 根据word xml模板生成word(个人v2版本)

时间:2023-03-20 14:05:02浏览次数:43  
标签:xml word String v2 File userAgent new id

这里用的是poi相关jar包以及freemarker插值技术实现,poi相关jar包这里不再述说

1,编辑word并保存为xml

其中需要动态输出的内容使用${xxx}代替,xxx是你的java类属性值,如:年龄:${age}
打开的xml要看看是否为途中${}的样式,如果被wold分割了,需要自己了解wold xml格式并去修改

2,把xml后缀改为ftl文件

 

$(function() {
//导出
$("#exportWordData").click(function() {
var id = $("input[name='id']").val();
// alert(id);
var url = __ctx+'/yjsqsgyrb/yjsqsgyrb/yjsqsgyrb/exportWordxml.ht?id='+id;
var userAgent = navigator.userAgent; //取得浏览器的userAgent字符串
if (userAgent.indexOf("compatible") > -1 && userAgent.indexOf("MSIE") > -1) {//判断是否IE浏览器
window.location.href(url);
}else{
window.open(url,"xxx调度日报_");
}
});
});

js

 

@RequestMapping("exportWordxml")
public void exportWordxml(HttpServletRequest request, HttpServletResponse response) throws Exception {
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
Map<String, Object> rootMap = new HashMap<String, Object>();
String id = RequestUtil.getString(request, "id");

Yjsqsgyrb yjbb = new Yjsqsgyrb();
yjbb = (Yjsqsgyrb) yjsqsgyrbService.getById(Long.valueOf(Long.parseLong(id)));

Gson gson = new Gson();
String json = gson.toJson(yjbb);
rootMap = gson.fromJson(json, rootMap.getClass());

String name = "xxx日报_" + df.format(new Date()) + ".doc";
// 设置MIMI类型,默认的是text/hmtl
response.setHeader("Content-Type", "application/msword");
// 解决中文乱码,以及设置生成的文档名
response.setHeader("Content-Disposition", "attachment;filename=" + new String(name.getBytes("utf-8"), "ISO8859-1"));

// 取得当前类所在的目录
String filePath = FileUtil.getRootPath() + File.separator + "commons" + File.separator + "template" + File.separator + "yjdlbb" + File.separator;

Configuration cfg = new Configuration();
cfg.setDirectoryForTemplateLoading(new File(filePath));

// 这里不设置编码的话,即是成功了有时也打不开文件,因为乱码
Template temp = cfg.getTemplate("myxml.ftl", "utf-8");
PrintWriter pw = response.getWriter();

/* 合并数据模型和模版 */
temp.process(rootMap, pw);
pw.flush();
pw.close();
}

java

 

其中导入的类

import com.google.gson.Gson;
import freemarker.template.Configuration;
import freemarker.template.Template;



标签:xml,word,String,v2,File,userAgent,new,id
From: https://blog.51cto.com/u_12159706/6132716

相关文章

  • word插入分节符
    选择要开始新分区的地方。转到"页面布局">分页符"。要添加的分节符:“下一页”分节符会在下一页上开始新节 “连续”分节符会在同一页上开始新节。提示:可以使用连续......
  • android stdio对于xml中列表的展示
    我们需要用到一个控件,ListView如果愿意深度学习,可以观看下方的文章。(11条消息)Android最常用的控件ListView(详解)_androidlistview_撩得Android一次心动的博客-CSDN博......
  • 一站式微服务治理中台,Water v2.10.2 发布
    Water(水孕育万物...)Water为项目开发、服务治理,提供一站式解决方案(可以理解为微服务架构支持套件)。基于Solon框架开发,并支持完整的SolonCloud规范;已在生产环境奔跑了......
  • YOLOv2
    YOLOv2:YOLOv1的缺点虽然检测速度较快,可以实现实时检测,但mAP(检测准确度)较之前的双阶段目标检测模型较低图像划分为7x7个gridcell,每个gridcell负责预测一个物体,最多预......
  • Reset [email protected] and root password VCSA
    Resetadministrator@vsphere.localandrootpasswordVCSA7OCTOBER2019KABIRIfyoufindyourselfinasituationwherenobodyknowswhattheadministratorpa......
  • 【Android开发】用户界面设计-使用XML和Java代码混合控制UI界面
    效果图:res/layout/main.xml:<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:......
  • 【Android开发】用户界面设计-使用XML布局文件控制UI界面
    效果图:实现方法:MainActivity:packagecom.example.test;importandroid.app.Activity;importandroid.os.Bundle;publicclassMainActivityextendsActivity{@Override......
  • logback.xml文件
    <?xmlversion="1.0"encoding="UTF-8"?><configurationdebug="false"><!--一、日志文件存放的地址,可以更改--><propertyname="LOG_HOME"value="D:\j......
  • maven的pom.xml基础配置
    <?xmlversion="1.0"encoding="UTF-8"?><projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"......
  • 【Ajax技术】JQuery处理XML数据
    我们将之前写的应用使用jquery返回xml数据程序清单服务端Servelt:AjaxXMLServer.java静态页面:ajaxJqueryXml.htmljavascript脚本文件:verifyj......