老婆的工作中需要使用一个网站将数据导出成doc或者docx格式,但是目前他们导出的格式为word 2003 xml格式,电脑版的office或者wps打开这种格式是没什么问题的,但是手机版的打开就是一堆xml,总是需要在电脑上转换一下才行。我让老婆找做这个网站的技术人员,但是这些技术人员只是说他们导出来的word是标准的doc格式,电脑能打开就是标准的,说了几次还是不肯松口改。一开始还觉得这个技术人员过于推脱,后来,听老婆说这个网站项目的开发费用非常少,也不知道说什么好了。

这个网站的后端使用java写的,他们给我看了response生成的函数代码,如下图所示:

可以推断template.process后得到是xml字符串,因此只需将该语句修改成如下即可:

//1.首先将模板转换成Word 2006 XML

//2.模板变量替换
Writer out = new StringWriter();
template.process(map, out);
String content = out.toString();

//3.转换数据
InputStream wordMLStream = new ByteArrayInputStream(content.getBytes(StandardCharsets.UTF_8));
WordprocessingMLPackage wordMLPackage = WordprocessingMLPackage.load(wordMLStream);

//4.存储数据
wordMLPackage.save(response.getOutputStream());

提示:此过程引入了org.docx4j包,以提供WordprocessingMLPackage转换工具。