java 中FreeMaker的使用(excel、word),涉及解压缩

最近在项目中,涉及到很多(word、excel)导入、导出的功能,word 版的搞得好久 涉及到单选框 、 附件、文本、图片。记录下来希望对有这方面需求的同学有所帮助:

word 导出篇

最终效果(写入后单选框可点击,附件点击可解压)

先来关键代码
1:maven依赖

        <dependency><groupId>org.freemarker</groupId><artifactId>freemarker</artifactId><version>2.3.28</version></dependency>

2:配置类

 import freemarker.template.TemplateException;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.ui.freemarker.FreeMarkerConfigurationFactory;
import org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer;import java.io.IOException;
import java.util.Properties;/*** @author 一阵小风儿-来无影去无踪* @history 修订历史(历次修订内容、修订人、修订时间等)**/
@Configuration
public class FreeMakerConfigure {@Beanpublic FreeMarkerConfigurer freemarkerConfig() throws IOException, TemplateException {FreeMarkerConfigurationFactory factory = new FreeMarkerConfigurationFactory();factory.setTemplateLoaderPath("classpath:/templates/");factory.setDefaultEncoding("UTF-8");factory.setPreferFileSystemAccess(true);FreeMarkerConfigurer result = new FreeMarkerConfigurer();freemarker.template.Configuration configuration = factory.createConfiguration();configuration.setClassicCompatible(true);result.setConfiguration(configuration);Properties settings = new Properties();settings.put("template_update_delay", "0");settings.put("default_encoding", "UTF-8");settings.put("number_format", "0.######");settings.put("classic_compatible", true);settings.put("template_exception_handler", "ignore");result.setFreemarkerSettings(settings);return result;}}

3:模板的生成
这个我也是参考链接: sun_flower火柴人.(站在别人的肩膀 我能看的更高。。。。。。舒服。。。。。一时,后来我发现对于单选框,附件还是要自己搞能搜的资料真的很少,可是模板的样式真的很赞 不愿意用poi 编写样式,于是我继续钻。。。。。)

4:模板位置

5:我的模板导出是直接在批量导出的功能中 、可自行忽略压缩输出

    @Overridepublic void getDownLoadInfo(List<String> ids, HttpServletResponse response) throws Exception {if (!CollectionUtils.isEmpty(ids)) {//response 输出流ServletOutputStream out = null;//压缩输出流ZipOutputStream zipOutputStream = null;InputStream input = null;try {String title = "测试.zip";response.setContentType("application/octet-stream;charset=utf-8");response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(title, "UTF-8"));out = response.getOutputStream();zipOutputStream = new ZipOutputStream(out);Map<String, Object> map = new LinkedHashMap<>();List<Object> recordDtos = new ArrayList<>();for (Object record : recordDtos) {String  dir="每个具体文件路径";ExportMyWord emw = new ExportMyWord();map.put("字段A", "A值");map.put("字段B", "B值");map.put("字段C", "C值");String fileName = File.separator + dir + File.separator +  "测试.doc";emw.createWord(map, "demo.ftl", fileName);try {File file = new File(fileName);input = new FileInputStream(file);ZipEntry z = new ZipEntry(fileName);zipOutputStream.putNextEntry(z);byte[] bytes = new byte[1024 * 50];int len = -1;//解释这个fis.read(bytes)的意思:从读取流"读取数组长度"的数据(打印len可知),并放入数组while ((len = input.read(bytes, 0, 1024)) != -1) {//虽然数组长度的*5,但是这里我们设置了1024所以每次输出1024//因为每次得到的是新的数组,所以每次都是新数组的"0-len"zipOutputStream.write(bytes, 0, len);}List<Object> enclosureTS =new ArrayList<>();for (Object complaintEnclosure : enclosureTS) {//附件压缩到指定包结构中}} finally {if (input != null) {input.close();}FileUtil.clearFiles(fileName);FileUtil.clearFiles(File.separator + dir);}}zipOutputStream.flush();} catch (IOException e) {e.printStackTrace();} finally {//注意关闭顺序,否则可能文件错误if (zipOutputStream != null) {zipOutputStream.closeEntry();zipOutputStream.finish();zipOutputStream.close();}if (input != null) {input.close();}if (out != null) {out.close();}}}}

上面的基本可以满足 文本 图片的需要,下面是我自己的100%原创 基本想法(尝试了很多)
由于单选框和附件是属于ole 对象 操作的后的数据都是加密后的类似这样的数据
183GmgAAAAAAANgAJACQAAAAAAB9VwEACQAAA0oDAAACAFkCAAAAAAQAAAADAQgABQAAAAsCAAAA AAUAAAAMAiQA2AADAAAAHgAHAAAA/AIAAP//…
不同与图片的base64 可以编码写入、解码解析。加密方式没有找到网上资料ooxml很少。
6:单选框的写入,最后使用了笨方法,害。。

    <#if whetherSolve == "0"><pkg:part pkg:name="/word/media/image1.wmf" pkg:contentType="image/x-wmf"><pkg:binaryData>183GmgAAAAAAANgAJACQAAAAAAB9VwEACQAAAz0DAAACAFkCAAAAAAQAAAADAQgABQAAAAsCAAAA AAUAAAAMAiQA2AADAAAAHgAHAAAA/AIAAP///wAAAAQAAAAtAQAACQAAAB0GIQDwACQA2AAAAAAA BQAAAAsCAAAAAAUAAAAMAiQA2AAFAAAAAQL///8ABQAAAC4BAAAAAAUAAAACAQEAAAAcAAAA+wLr /wAAAAAAALwCAAAAhgBAACLLzszlAH3gdeg613VAAAAAsDovAZc02HVAfeB1AAAAAAQAAAAtAQEA BQAAAAkCAAAAABcAAAAyCgcAGAAIAAQAGAAHANUAHADIq7K/veK+9hYAAAAWAAAAFgAAABYAAAAE AAAALQEBAAQAAAAtAQAACQAAAB0GIQDwABMAEwAIAAEASQAAAEAJxgCIAAAAAAATABMACAABACgA AAATAAAAEwAAAAEAAQAAAAAATAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP//4AD//+AA/gfg APgB4ADwAOAA4ABgAOAAYADAACAAwAAgAMAAIADAACAAwAAgAMAAIADgAGAA4ABgAPAA4AD4AeAA /gfgAP//4ABZAgAAQAmGAO4AAAAAABMAEwAIAAEAKAAAABMAAAATAAAAAQAYAAAAAAB0BAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP// /wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///+Pj4+Pj4+Pj4+Pj4+Pj 4+Pj4wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKCgoP///+Pj4+Pj4/// /+Pj4+Pj4wAAAAAAAAAAAAAAAAAAAAAAAAAAAKCgoKCgoGlpaf// /+Pj4wAAAAAAAAAAAAAAAAAAAAAAAKCgoGlpaf///wAA AAAAAAAAAAAAAP///+Pj4wAAAAAAAAAAAAAAAAAAAKCgoGlpaWlpaf///wAA AAAAAAAAAAAAAAAAAAAAAP///+Pj4+Pj4wAAAAAAAAAAAAAAAKCgoGlpaf///wAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///+Pj4wAAAAAAAAAAAAAAAKCgoGlpaf// /wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///+Pj4wAAAAAAAAAAAAAAAKCgoGlpaf// /wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///+Pj4wAAAAAAAAAAAAAAAKCgoGlp af///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///+Pj4wAAAAAAAAAAAAAAAKCg oGlpaWlpaf///wAAAAAAAAAAAAAAAAAAAAAAAP///+Pj4+Pj4wAAAAAAAAAAAAAA AAAAAKCgoGlpaf///wAAAAAAAAAAAAAAAP///+Pj4wAAAAAAAAAAAAAA AAAAAAAAAKCgoKCgoGlpaf///2lpaf///wAAAAAAAAAA AAAAAAAAAAAAAAAAAKCgoKCgoGlpaWlpaf///2lpaWlpaaCgoKCgoAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAKCgoKCgoGlpaWlpaWlpaWlpaWlpaWlpaaCgoKCgoAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKCgoKCgoKCgoKCgoKCgoKCgoAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAQAAAAnAf//AwAAAAAA</pkg:binaryData></pkg:part><pkg:part pkg:name="/word/media/image2.wmf" pkg:contentType="image/x-wmf"><pkg:binaryData>183GmgAAAAAAANgAJACQAAAAAAB9VwEACQAAA0oDAAACAFkCAAAAAAQAAAADAQgABQAAAAsCAAAA AAUAAAAMAiQA2AADAAAAHgAHAAAA/AIAAP///wAAAAQAAAAtAQAACQAAAB0GIQDwACQA2AAAAAAA BAAAAC0BAAAJAAAAHQYhAPAAJADDAAAAFQAFAAAACwIAAAAABQAAAAwCJADYAAUAAAABAv///wAF AAAALgEAAAAABQAAAAIBAQAAABwAAAD7Auv/AAAAAAAAvAIAAACGAEAAIsvOzOUAfeB16DrXdUAA AADYei8BlzTYdUB94HUAAAAABAAAAC0BAQAFAAAACQIAAAAAFwAAADIKBwAYAAgABAAYAAcA1QAc ALK/t9a94r72FgAAABYAAAAWAAAAFgAAAAQAAAAtAQEABAAAAC0BAAAJAAAAHQYhAPAAEwATAAgA AQBJAAAAQAnGAIgAAAAAABMAEwAIAAEAKAAAABMAAAATAAAAAQABAAAAAABMAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAD///8A///gAP//4AD+B+AA+AHgAPAA4ADgAGAA4ABgAMAAIADAACAAwAAgAMAA IADAACAAwAAgAOAAYADgAGAA8ADgAPgB4AD+B+AA///gAFkCAABACYYA7gAAAAAAEwATAAgAAQAo AAAAEwAAABMAAAABABgAAAAAAHQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAA4+Pj4+Pj4+Pj4+Pj4+Pj4+PjAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAoKCg4+Pj4+Pj4+Pj4+PjAAAAAAAAAAAAAAAAAAAA AAAAAAAAoKCgoKCgaWlp4+PjAAAAAAAAAAAA AAAAAAAAAAAAoKCgaWlp4+PjAAAAAAAA AAAAAAAAAAAAoKCgaWlpaWlp4+Pj4+Pj AAAAAAAAAAAAAAAAoKCgaWlp4+Pj AAAAAAAAAAAAAAAAoKCgaWlp 4+PjAAAAAAAAAAAAAAAAoKCgaWlp 4+PjAAAAAAAAAAAAAAAAoKCgaWlp 4+PjAAAAAAAAAAAAAAAAoKCgaWlpaWlp 4+Pj4+PjAAAAAAAAAAAAAAAAAAAAoKCgaWlp 4+PjAAAAAAAAAAAAAAAAAAAAAAAAoKCgoKCgaWlp aWlpAAAAAAAAAAAAAAAAAAAAAAAAAAAAoKCgoKCgaWlpaWlp aWlpaWlpoKCgoKCgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoKCgoKCgaWlpaWlp aWlpaWlpaWlpaWlpoKCgoKCgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoKCg oKCgoKCgoKCgoKCgoKCgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAACcB//8DAAAAAAA=</pkg:binaryData></pkg:part><pkg:part pkg:name="/word/media/image3.wmf" pkg:contentType="image/x-wmf"><pkg:binaryData>183GmgAAAAAAANgAJACQAAAAAAB9VwEACQAAA1YDAAACAFkCAAAAAAQAAAADAQgABQAAAAsCAAAA AAUAAAAMAiQA2AADAAAAHgAHAAAA/AIAAP///wAAAAQAAAAtAQAACQAAAB0GIQDwACQA2AAAAAAA BAAAAC0BAAAJAAAAHQYhAPAAJADDAAAAFQAFAAAACwIAAAAABQAAAAwCJADYAAUAAAABAv///wAF AAAALgEAAAAABQAAAAIBAQAAABwAAAD7Auv/AAAAAAAAvAIAAACGAEAAIsvOzOUAfeB16DrXdUAA AADY2C8BlzTYdUB94HUAAAAABAAAAC0BAQAFAAAACQIAAAAADgAAADIKBwAYAAIABAAYAAcA1QAc AM60FgAAAAQAAAAtAQEAEQAAADIKBwAuAAQABAAYAAcA1QAcAL3ivvYWAAAAFgAAAAQAAAAtAQEA BAAAAC0BAAAJAAAAHQYhAPAAEwATAAgAAQBJAAAAQAnGAIgAAAAAABMAEwAIAAEAKAAAABMAAAAT AAAAAQABAAAAAABMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8A///gAP//4AD+B+AA+AHgAPAA 4ADgAGAA4ABgAMAAIADAACAAwAAgAMAAIADAACAAwAAgAOAAYADgAGAA8ADgAPgB4AD+B+AA///g AFkCAABACYYA7gAAAAAAEwATAAgAAQAoAAAAEwAAABMAAAABABgAAAAAAHQEAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoKCg4+Pj4+Pj4+Pj 4+PjAAAAAAAAAAAAAAAAAAAAAAAAAAAAoKCgoKCgaWlp 4+PjAAAAAAAAAAAAAAAAAAAAAAAAoKCgaWlp 4+PjAAAAAAAAAAAAAAAAAAAAoKCgaWlpaWlp 4+Pj4+PjAAAAAAAAAAAAAAAAoKCgaWlp 4+PjAAAAAAAAAAAAAAAAoKCgaWlp 4+PjAAAAAAAAAAAAAAAAoKCgaWlp 4+PjAAAAAAAAAAAAAAAAoKCgaWlp 4+PjAAAAAAAAAAAAAAAAoKCgaWlpaWlp 4+Pj4+PjAAAAAAAAAAAAAAAAAAAAoKCg aWlp4+PjAAAAAAAAAAAAAAAAAAAAAAAA oKCgoKCgaWlpaWlpAAAAAAAAAAAAAAAAAAAA AAAAAAAAoKCgoKCgaWlpaWlpaWlpaWlpoKCgoKCgAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAoKCgoKCgaWlpaWlpaWlpaWlpaWlpaWlpoKCgoKCgAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAoKCgoKCgoKCgoKCgoKCgoKCgAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAABAAAACcB//8DAAAAAAA=</pkg:binaryData></pkg:part><#elseif whetherSolve == "1"><pkg:part pkg:name="/word/media/image1.wmf" pkg:contentType="image/x-wmf"><pkg:binaryData>183GmgAAAAAAANgAJACQAAAAAAB9VwEACQAAA0oDAAACAFkCAAAAAAQAAAADAQgABQAAAAsCAAAA AAUAAAAMAiQA2AADAAAAHgAHAAAA/AIAAP///wAAAAQAAAAtAQAACQAAAB0GIQDwACQA2AAAAAAA BAAAAC0BAAAJAAAAHQYhAPAAJADDAAAAFQAFAAAACwIAAAAABQAAAAwCJADYAAUAAAABAv///wAF AAAALgEAAAAABQAAAAIBAQAAABwAAAD7Auv/AAAAAAAAvAIAAACGAEAAIsvOzOUAfeB16DrXdUAA AABQ3A8BlzTYdUB94HUAAAAABAAAAC0BAQAFAAAACQIAAAAAFwAAADIKBwAYAAgABAAYAAcA1QAc AMirsr+94r72FgAAABYAAAAWAAAAFgAAAAQAAAAtAQEABAAAAC0BAAAJAAAAHQYhAPAAEwATAAgA AQBJAAAAQAnGAIgAAAAAABMAEwAIAAEAKAAAABMAAAATAAAAAQABAAAAAABMAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAD///8A///gAP//4AD+B+AA+AHgAPAA4ADgAGAA4ABgAMAAIADAACAAwAAgAMAA IADAACAAwAAgAOAAYADgAGAA8ADgAPgB4AD+B+AA///gAFkCAABACYYA7gAAAAAAEwATAAgAAQAo AAAAEwAAABMAAAABABgAAAAAAHQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAA4+Pj4+Pj4+Pj4+Pj4+Pj4+PjAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAoKCg4+Pj4+Pj4+Pj4+PjAAAAAAAAAAAAAAAAAAAA AAAAAAAAoKCgoKCgaWlp4+PjAAAAAAAAAAAA AAAAAAAAAAAAoKCgaWlp4+PjAAAAAAAA AAAAAAAAAAAAoKCgaWlpaWlp4+Pj4+Pj AAAAAAAAAAAAAAAAoKCgaWlp4+Pj AAAAAAAAAAAAAAAAoKCgaWlp 4+PjAAAAAAAAAAAAAAAAoKCgaWlp 4+PjAAAAAAAAAAAAAAAAoKCgaWlp 4+PjAAAAAAAAAAAAAAAAoKCgaWlpaWlp 4+Pj4+PjAAAAAAAAAAAAAAAAAAAAoKCgaWlp 4+PjAAAAAAAAAAAAAAAAAAAAAAAAoKCgoKCgaWlp aWlpAAAAAAAAAAAAAAAAAAAAAAAAAAAAoKCgoKCgaWlpaWlp aWlpaWlpoKCgoKCgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoKCgoKCgaWlpaWlp aWlpaWlpaWlpaWlpoKCgoKCgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoKCg oKCgoKCgoKCgoKCgoKCgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAACcB//8DAAAAAAA=</pkg:binaryData></pkg:part><pkg:part pkg:name="/word/media/image2.wmf" pkg:contentType="image/x-wmf"><pkg:binaryData>183GmgAAAAAAANgAJACQAAAAAAB9VwEACQAAAz0DAAACAFkCAAAAAAQAAAADAQgABQAAAAsCAAAA AAUAAAAMAiQA2AADAAAAHgAHAAAA/AIAAP///wAAAAQAAAAtAQAACQAAAB0GIQDwACQA2AAAAAAA BQAAAAsCAAAAAAUAAAAMAiQA2AAFAAAAAQL///8ABQAAAC4BAAAAAAUAAAACAQEAAAAcAAAA+wLr /wAAAAAAALwCAAAAhgBAACLLzszlAH3gdeg613VAAAAAMD4PAZc02HVAfeB1AAAAAAQAAAAtAQEA BQAAAAkCAAAAABcAAAAyCgcAGAAIAAQAGAAHANUAHACyv7fWveK+9hYAAAAWAAAAFgAAABYAAAAE AAAALQEBAAQAAAAtAQAACQAAAB0GIQDwABMAEwAIAAEASQAAAEAJxgCIAAAAAAATABMACAABACgA AAATAAAAEwAAAAEAAQAAAAAATAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP//4AD//+AA/gfg APgB4ADwAOAA4ABgAOAAYADAACAAwAAgAMAAIADAACAAwAAgAMAAIADgAGAA4ABgAPAA4AD4AeAA /gfgAP//4ABZAgAAQAmGAO4AAAAAABMAEwAIAAEAKAAAABMAAAATAAAAAQAYAAAAAAB0BAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP// /wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///+Pj4+Pj4+Pj4+Pj4+Pj 4+Pj4wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKCgoP///+Pj4+Pj4/// /+Pj4+Pj4wAAAAAAAAAAAAAAAAAAAAAAAAAAAKCgoKCgoGlpaf// /+Pj4wAAAAAAAAAAAAAAAAAAAAAAAKCgoGlpaf///wAA AAAAAAAAAAAAAP///+Pj4wAAAAAAAAAAAAAAAAAAAKCgoGlpaWlpaf///wAA AAAAAAAAAAAAAAAAAAAAAP///+Pj4+Pj4wAAAAAAAAAAAAAAAKCgoGlpaf///wAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///+Pj4wAAAAAAAAAAAAAAAKCgoGlpaf// /wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///+Pj4wAAAAAAAAAAAAAAAKCgoGlpaf// /wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///+Pj4wAAAAAAAAAAAAAAAKCgoGlp af///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///+Pj4wAAAAAAAAAAAAAAAKCg oGlpaWlpaf///wAAAAAAAAAAAAAAAAAAAAAAAP///+Pj4+Pj4wAAAAAAAAAAAAAA AAAAAKCgoGlpaf///wAAAAAAAAAAAAAAAP///+Pj4wAAAAAAAAAAAAAA AAAAAAAAAKCgoKCgoGlpaf///2lpaf///wAAAAAAAAAA AAAAAAAAAAAAAAAAAKCgoKCgoGlpaWlpaf///2lpaWlpaaCgoKCgoAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAKCgoKCgoGlpaWlpaWlpaWlpaWlpaWlpaaCgoKCgoAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKCgoKCgoKCgoKCgoKCgoKCgoAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAQAAAAnAf//AwAAAAAA</pkg:binaryData></pkg:part><pkg:part pkg:name="/word/media/image3.wmf" pkg:contentType="image/x-wmf"><pkg:binaryData>183GmgAAAAAAANgAJACQAAAAAAB9VwEACQAAA0cDAAACAFkCAAAAAAQAAAADAQgABQAAAAsCAAAA AAUAAAAMAiQA2AADAAAAHgAHAAAA/AIAAP///wAAAAQAAAAtAQAACQAAAB0GIQDwACQA2AAAAAAA BAAAAC0BAAAJAAAAHQYhAPAAJADDAAAAFQAFAAAACwIAAAAABQAAAAwCJADYAAUAAAABAv///wAF AAAALgEAAAAABQAAAAIBAQAAABwAAAD7Auv/AAAAAAAAvAIAAACGAEAAIsvOzOUAfeB16DrXdUAA AABQGw8BlzTYdUB94HUAAAAABAAAAC0BAQAFAAAACQIAAAAAFAAAADIKBwAYAAYABAAYAAcA1QAc AM60veK+9hYAAAAWAAAAFgAAAAQAAAAtAQEABAAAAC0BAAAJAAAAHQYhAPAAEwATAAgAAQBJAAAA QAnGAIgAAAAAABMAEwAIAAEAKAAAABMAAAATAAAAAQABAAAAAABMAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAD///8A///gAP//4AD+B+AA+AHgAPAA4ADgAGAA4ABgAMAAIADAACAAwAAgAMAAIADAACAA wAAgAOAAYADgAGAA8ADgAPgB4AD+B+AA///gAFkCAABACYYA7gAAAAAAEwATAAgAAQAoAAAAEwAA ABMAAAABABgAAAAAAHQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 4+Pj4+Pj4+Pj4+Pj4+Pj4+PjAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA oKCg4+Pj4+Pj4+Pj4+PjAAAAAAAAAAAAAAAAAAAAAAAAAAAA oKCgoKCgaWlp4+PjAAAAAAAAAAAAAAAAAAAA AAAAoKCgaWlp4+PjAAAAAAAAAAAAAAAA AAAAoKCgaWlpaWlp4+Pj4+PjAAAAAAAA AAAAAAAAoKCgaWlp4+PjAAAA AAAAAAAAAAAAoKCgaWlp4+Pj AAAAAAAAAAAAAAAAoKCgaWlp4+Pj AAAAAAAAAAAAAAAAoKCgaWlp 4+PjAAAAAAAAAAAAAAAAoKCgaWlpaWlp 4+Pj4+PjAAAAAAAAAAAAAAAAAAAAoKCgaWlp 4+PjAAAAAAAAAAAAAAAAAAAAAAAAoKCgoKCgaWlp aWlpAAAAAAAAAAAAAAAAAAAAAAAAAAAAoKCgoKCgaWlpaWlp aWlpaWlpoKCgoKCgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoKCgoKCgaWlpaWlpaWlpaWlp aWlpaWlpoKCgoKCgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoKCgoKCgoKCg oKCgoKCgoKCgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAACcB//8DAAAAAAA=</pkg:binaryData></pkg:part><#else><pkg:part pkg:name="/word/media/image1.wmf" pkg:contentType="image/x-wmf"><pkg:binaryData>183GmgAAAAAAANgAJACQAAAAAAB9VwEACQAAA0oDAAACAFkCAAAAAAQAAAADAQgABQAAAAsCAAAA AAUAAAAMAiQA2AADAAAAHgAHAAAA/AIAAP///wAAAAQAAAAtAQAACQAAAB0GIQDwACQA2AAAAAAA BAAAAC0BAAAJAAAAHQYhAPAAJADDAAAAFQAFAAAACwIAAAAABQAAAAwCJADYAAUAAAABAv///wAF AAAALgEAAAAABQAAAAIBAQAAABwAAAD7Auv/AAAAAAAAvAIAAACGAEAAIsvOzOUAfeB16DrXdUAA AADQF28AlzTYdUB94HUAAAAABAAAAC0BAQAFAAAACQIAAAAAFwAAADIKBwAYAAgABAAYAAcA1QAc AMirsr+94r72FgAAABYAAAAWAAAAFgAAAAQAAAAtAQEABAAAAC0BAAAJAAAAHQYhAPAAEwATAAgA AQBJAAAAQAnGAIgAAAAAABMAEwAIAAEAKAAAABMAAAATAAAAAQABAAAAAABMAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAD///8A///gAP//4AD+B+AA+AHgAPAA4ADgAGAA4ABgAMAAIADAACAAwAAgAMAA IADAACAAwAAgAOAAYADgAGAA8ADgAPgB4AD+B+AA///gAFkCAABACYYA7gAAAAAAEwATAAgAAQAo AAAAEwAAABMAAAABABgAAAAAAHQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAA4+Pj4+Pj4+Pj4+Pj4+Pj4+PjAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAoKCg4+Pj4+Pj4+Pj4+PjAAAAAAAAAAAAAAAAAAAA AAAAAAAAoKCgoKCgaWlp4+PjAAAAAAAAAAAA AAAAAAAAAAAAoKCgaWlp4+PjAAAAAAAA AAAAAAAAAAAAoKCgaWlpaWlp4+Pj4+Pj AAAAAAAAAAAAAAAAoKCgaWlp4+Pj AAAAAAAAAAAAAAAAoKCgaWlp 4+PjAAAAAAAAAAAAAAAAoKCgaWlp 4+PjAAAAAAAAAAAAAAAAoKCgaWlp 4+PjAAAAAAAAAAAAAAAAoKCgaWlpaWlp 4+Pj4+PjAAAAAAAAAAAAAAAAAAAAoKCgaWlp 4+PjAAAAAAAAAAAAAAAAAAAAAAAAoKCgoKCgaWlp aWlpAAAAAAAAAAAAAAAAAAAAAAAAAAAAoKCgoKCgaWlpaWlp aWlpaWlpoKCgoKCgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoKCgoKCgaWlpaWlp aWlpaWlpaWlpaWlpoKCgoKCgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoKCg oKCgoKCgoKCgoKCgoKCgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAACcB//8DAAAAAAA=</pkg:binaryData></pkg:part><pkg:part pkg:name="/word/media/image2.wmf" pkg:contentType="image/x-wmf"><pkg:binaryData>183GmgAAAAAAANgAJACQAAAAAAB9VwEACQAAA0oDAAACAFkCAAAAAAQAAAADAQgABQAAAAsCAAAA AAUAAAAMAiQA2AADAAAAHgAHAAAA/AIAAP///wAAAAQAAAAtAQAACQAAAB0GIQDwACQA2AAAAAAA BAAAAC0BAAAJAAAAHQYhAPAAJADDAAAAFQAFAAAACwIAAAAABQAAAAwCJADYAAUAAAABAv///wAF AAAALgEAAAAABQAAAAIBAQAAABwAAAD7Auv/AAAAAAAAvAIAAACGAEAAIsvOzOUAfeB16DrXdUAA AADw2G8AlzTYdUB94HUAAAAABAAAAC0BAQAFAAAACQIAAAAAFwAAADIKBwAYAAgABAAYAAcA1QAc ALK/t9a94r72FgAAABYAAAAWAAAAFgAAAAQAAAAtAQEABAAAAC0BAAAJAAAAHQYhAPAAEwATAAgA AQBJAAAAQAnGAIgAAAAAABMAEwAIAAEAKAAAABMAAAATAAAAAQABAAAAAABMAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAD///8A///gAP//4AD+B+AA+AHgAPAA4ADgAGAA4ABgAMAAIADAACAAwAAgAMAA IADAACAAwAAgAOAAYADgAGAA8ADgAPgB4AD+B+AA///gAFkCAABACYYA7gAAAAAAEwATAAgAAQAo AAAAEwAAABMAAAABABgAAAAAAHQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAA4+Pj4+Pj4+Pj4+Pj4+Pj4+PjAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAoKCg4+Pj4+Pj4+Pj4+PjAAAAAAAAAAAAAAAAAAAA AAAAAAAAoKCgoKCgaWlp4+PjAAAAAAAAAAAA AAAAAAAAAAAAoKCgaWlp4+PjAAAAAAAA AAAAAAAAAAAAoKCgaWlpaWlp4+Pj4+Pj AAAAAAAAAAAAAAAAoKCgaWlp4+Pj AAAAAAAAAAAAAAAAoKCgaWlp 4+PjAAAAAAAAAAAAAAAAoKCgaWlp 4+PjAAAAAAAAAAAAAAAAoKCgaWlp 4+PjAAAAAAAAAAAAAAAAoKCgaWlpaWlp 4+Pj4+PjAAAAAAAAAAAAAAAAAAAAoKCgaWlp 4+PjAAAAAAAAAAAAAAAAAAAAAAAAoKCgoKCgaWlp aWlpAAAAAAAAAAAAAAAAAAAAAAAAAAAAoKCgoKCgaWlpaWlp aWlpaWlpoKCgoKCgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoKCgoKCgaWlpaWlp aWlpaWlpaWlpaWlpoKCgoKCgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoKCg oKCgoKCgoKCgoKCgoKCgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAACcB//8DAAAAAAA=</pkg:binaryData></pkg:part><pkg:part pkg:name="/word/media/image3.wmf" pkg:contentType="image/x-wmf"><pkg:binaryData>183GmgAAAAAAANgAJACQAAAAAAB9VwEACQAAAzoDAAACAFkCAAAAAAQAAAADAQgABQAAAAsCAAAA AAUAAAAMAiQA2AADAAAAHgAHAAAA/AIAAP///wAAAAQAAAAtAQAACQAAAB0GIQDwACQA2AAAAAAA BQAAAAsCAAAAAAUAAAAMAiQA2AAFAAAAAQL///8ABQAAAC4BAAAAAAUAAAACAQEAAAAcAAAA+wLr /wAAAAAAALwCAAAAhgBAACLLzszlAH3gdeg613VAAAAAyHpvAJc02HVAfeB1AAAAAAQAAAAtAQEA BQAAAAkCAAAAABQAAAAyCgcAGAAGAAQAGAAHANUAHADOtL3ivvYWAAAAFgAAABYAAAAEAAAALQEB AAQAAAAtAQAACQAAAB0GIQDwABMAEwAIAAEASQAAAEAJxgCIAAAAAAATABMACAABACgAAAATAAAA EwAAAAEAAQAAAAAATAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP//4AD//+AA/gfgAPgB4ADw AOAA4ABgAOAAYADAACAAwAAgAMAAIADAACAAwAAgAMAAIADgAGAA4ABgAPAA4AD4AeAA/gfgAP// 4ABZAgAAQAmGAO4AAAAAABMAEwAIAAEAKAAAABMAAAATAAAAAQAYAAAAAAB0BAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4/// /wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKCgoP///+Pj4+Pj4+Pj 4+Pj4wAAAAAAAAAAAAAAAAAAAAAAAAAAAKCgoKCgoGlpaf// /+Pj4wAAAAAAAAAAAAAAAAAAAAAAAKCgoGlpaf///wAAAAAAAAAA AAAAAP///+Pj4wAAAAAAAAAAAAAAAAAAAKCgoGlpaWlpaf///wAAAAAAAAAA AAAAAAAAAAAAAP///+Pj4+Pj4wAAAAAAAAAAAAAAAKCgoGlpaf///wAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAP///+Pj4wAAAAAAAAAAAAAAAKCgoGlpaf///wAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAP///+Pj4wAAAAAAAAAAAAAAAKCgoGlpaf///wAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///+Pj4wAAAAAAAAAAAAAAAKCgoGlpaf// /wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///+Pj4wAAAAAAAAAAAAAAAKCgoGlpaWlp af///wAAAAAAAAAAAAAAAAAAAAAAAP///+Pj4+Pj4wAAAAAAAAAAAAAAAAAAAKCg oGlpaf///wAAAAAAAAAAAAAAAP///+Pj4wAAAAAAAAAAAAAAAAAAAAAA AKCgoKCgoGlpaf///2lpaf///wAAAAAAAAAAAAAAAAAA AAAAAAAAAKCgoKCgoGlpaWlpaf///2lpaWlpaaCgoKCgoAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAKCgoKCgoGlpaWlpaWlpaWlpaWlpaWlpaaCgoKCgoAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAKCgoKCgoKCgoKCgoKCgoKCgoAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAQAAAAnAf//AwAAAAAA</pkg:binaryData></pkg:part></#if>

像你看到一样,我观察单选框是全部解决时 pkg 的数据,未解决时的数据,以及部分解决的数据,毫无规律可言,还只是一个选中效果的不同 ,只能以力破题。。。。
我就判断后直接三个作为整体展示 就解决了写入的问题。。。害
7:解析单选框(模板导出的word 底层是xml 无法用正常的poi 解析。。。。用xml 解析还行)

    @Override@Transactional(rollbackFor = Exception.class)public Map<String, Object> getInfoInit(MultipartFile file) throws IOException {String filename = file.getOriginalFilename();logger.info("file name is " + filename);String fileType = filename.substring(filename.lastIndexOf(".") + 1).toLowerCase(Locale.US);String uuid = UUID.randomUUID().toString();//判断文件是不是zip类型if (fileType.equals("zip")) {String desPath = File.separator + uuid.replaceAll("", "");String savePath = File.separator;FileUtil fileUtil = new FileUtil();FileUtil.unZip(file, desPath, savePath);new Thread(() -> {List<File> fileList = new ArrayList<>();fileList = fileUtil.getSubFiles(desPath, fileList);for (File oneFile : fileList) {if (oneFile.getPath().contains(".doc")) {String[] split = oneFile.getPath().split(".doc");File wordFile = new File(split[0] + ".xml");try {FileUtils.copyFile(oneFile, wordFile);} catch (IOException e) {e.printStackTrace();}// 初始化xml解析工厂DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();try {factory.setFeature("http://xml.org/sax/features/external-general-entities", false);} catch (ParserConfigurationException e) {e.printStackTrace();}try {factory.setFeature("http://xml.org/sax/features/external-parameter-entities", false);} catch (ParserConfigurationException e) {e.printStackTrace();}// 创建DocumentBuilderDocumentBuilder builder = null;try {builder = factory.newDocumentBuilder();} catch (ParserConfigurationException e) {e.printStackTrace();}// 创建解析xml的DocumentDocument doc = null;try {if (builder != null) {doc = builder.parse(wordFile);}} catch (Exception e) {e.printStackTrace();}// 递归解析Elementassert doc != null;Element element = doc.getDocumentElement();Node childNode = element.getElementsByTagName("w:document").item(0);Element body = gg((Element) childNode, "w:body", 0);Element tbl = gg(body, "w:tbl", 0);Element tr = gg(tbl, "w:tr", 1);Element tc = gg(tr, "w:tc", 0);Element wp = gg(tc, "w:p", 0);Element wr = gg(wp, "w:r", 0);Element wt = gg(wr, "w:t", 0);Element ATr = gg(tbl, "w:tr", 9);String ATextContent = replaceBlank(ATr.getTextContent());Element BTr = gg(tbl, "w:tr", 11);String BTextContent = replaceBlank(BTr.getTextContent());Element solveProcessTr = gg(tbl, "w:tr", 7);Element solveProcesstc = gg(solveProcessTr, "w:tc", 1);Element solveProcesswp = gg(solveProcesstc, "w:p", 0);Map<String, String> ids = new HashMap<>();Element allSolveProcesswr = gg(solveProcesswp, "w:r", 0);Element allSolveProcessObject = gg(allSolveProcesswr, "w:object", 0);Element allSolveProcessShape = gg(allSolveProcessObject, "v:shape", 0);Element allSolveProcessImage = gg(allSolveProcessShape, "v:imagedata", 0);ids.put("全部解决", allSolveProcessImage.getAttributes().getNamedItem("r:id").getTextContent());Element partSolveProcesswp = gg(solveProcesstc, "w:p", 1);Element partSolveProcesswr = gg(partSolveProcesswp, "w:r", 0);Element partSolveProcessObject = gg(partSolveProcesswr, "w:object", 0);Element partSolveProcessShape = gg(partSolveProcessObject, "v:shape", 0);Element partSolveProcessImage = gg(partSolveProcessShape, "v:imagedata", 0);ids.put("部分解决", partSolveProcessImage.getAttributes().getNamedItem("r:id").getTextContent());Element noSolveProcesswp = gg(solveProcesstc, "w:p", 2);Element noSolveProcesswr = gg(noSolveProcesswp, "w:r", 0);Element noSolveProcessObject = gg(noSolveProcesswr, "w:object", 0);Element noSolveProcessShape = gg(noSolveProcessObject, "v:shape", 0);Element noSolveProcessImage = gg(noSolveProcessShape, "v:imagedata", 0);ids.put("未解决", noSolveProcessImage.getAttributes().getNamedItem("r:id").getTextContent());NodeList relationship = element.getElementsByTagName("Relationship");for (int i = 0; i < relationship.getLength(); i++) {Node childNode1 = element.getElementsByTagName("Relationship").item(i);Node target = childNode1.getAttributes().getNamedItem("Target");if (target.toString().contains("media/image")) {String id = childNode1.getAttributes().getNamedItem("Id").getTextContent();if (ids.get("全部解决").equals(id)) {ids.put("全部解决", target.getTextContent());}if (ids.get("部分解决").equals(id)) {ids.put("部分解决", target.getTextContent());}if (ids.get("未解决").equals(id)) {ids.put("未解决", target.getTextContent());}}}NodeList elementsByTagName = element.getElementsByTagName("pkg:part");String whetherSolve = null;for (int i = 0; i < elementsByTagName.getLength(); i++) {Node childNode1 = element.getElementsByTagName("pkg:part").item(i);Element document22 = gg((Element) childNode1, "pkg:binaryData", 0);String textContent = childNode1.getAttributes().getNamedItem("pkg:name").getTextContent();if (textContent.contains("media/image")) {if (document22.getTextContent().contains(CHECK_FLAG)) {if (textContent.contains(ids.get("全部解决"))) {whetherSolve = "0";}if (textContent.contains(ids.get("部分解决"))) {whetherSolve = "1";}if (textContent.contains(ids.get("未解决"))) {whetherSolve = "2";}}}}FileUtil.deleteFile(wordFile);FileUtil.deleteFile(oneFile);} else {//解析附件FileUtil.clearFiles(desPath);FileUtil.deleteFile(oneFile);}}//最后要删除文件FileUtil.clearFiles(desPath);}).start();}return null;}private static String replaceBlank(String str) {String dest = "";if (str != null) {Pattern p = Pattern.compile("\\s*|\t|\r|\n");Matcher m = p.matcher(str);dest = m.replaceAll("");}return dest;}private static Element gg(Element element, String tagName, int num) {Node item = element.getElementsByTagName(tagName).item(num);return (Element) item;}

写不下了。。。。 书接下文: word中附件的写入与读取.

java 中FreeMaker的使用(excel、word),涉及解压缩相关推荐

  1. 福利!使用Aspose.Words在Java中以编程方式将Word格式转换为PDF完整指南

    在共享文档之前,通常使用Word到PDF的转换.可以使用各种在线Word到PDF转换器,可以转换单个或有限数量的Word文档.但是,随着新兴的MS Word自动化和报告生成解决方案,Word到PDF的 ...

  2. java中使用jxl导出excel表格的工具类(全网唯一亲测可用,在原来基础上扩展)

    java中后台导出excel的话,有两种方案,一是使用poi(不过由于是windows版本的,存在不兼容,但功能更多,更强大),而是使用jxl(纯java编写,不过兼容,简单一些),可以设置输出的ex ...

  3. Java中导入、导出Excel——HSSFWorkbook 使用

    一.介绍 当前B/S模式已成为应用开发的主流,而在企业办公系统中,常常有客户这样子要求:你要把我们的报表直接用Excel打开(电信系统.银行系统).或者是:我们已经习惯用Excel打印.这样在我们实际 ...

  4. java中使用poi导出Excel详解,kotlin音标

    到这个问题,可以设置encoding为双字节.POI可以到www.apache.org下载到. 编译好的jar主要有这样4个:poi包, poi Browser包, poi hdf包, poi hss ...

  5. Java中的文件解析——Excel解析

    在日常的开发过程中,经常会使用到excel工作簿进行数据的保存,那么在java中,通常会使用第三方提供的技术来进行excel文件的解析,比如:Apache POI.JXL.Alibaba EasyEx ...

  6. java中key的作用_key word ‘final’ 在java 中作用

    随着硬件的发展,一般的芯片不会用于裸跑,像android things 这样的系统会越来越多,在嵌入式中c++/java的应用将会越来越多.而且我感觉嵌入式工程师掌握android app的基本开发是 ...

  7. java使用freemaker自定义路径导出Word关键点讲解版

    最近工作遇到需要开发java导出Word操作,这里我选用的模板是freemaker. 导出的前期操作在网络上一找一大把,我这里复述下我的操作: 1.将要导出的模板打到Word中,然后另存为xml格式的 ...

  8. java利用第三方jar实现excel,word,ppt,txt转pdf格式

    最近项目有文件模块的上传预览功能,比如把word文档上传,以后点击可以预览.采用的思路为:文件上传到服务器,然后获取转换成对应的新的PDF文件,然后读取PDF文件.本文着重实现文档上传然后转为PDF. ...

  9. java读取txt写入excel,java中对txt和excel的读取和写入

    txt工具类: package com.rj.bd.xm; import java.io.BufferedReader; import java.io.BufferedWriter; import j ...

最新文章

  1. thinking in object pool
  2. python文件读取输出-python分批定量读取文件内容,输出到不同文件中的方法
  3. SQL高效率语句(一)
  4. python zipfile_Python中的zipfile模块使用详解
  5. Apache Commons:Betwixt介绍
  6. 大象起舞——微软研发如何保持创新力和敏捷性
  7. GIS专业核心课程电子教材配套实验数据汇总(持续更新)
  8. aspjpeg已过期_Persits.Jpeg.1错误’800a0004′ AspJpeg组件过期解决方法 - YangJunwei
  9. gcc 安装在服务器的问题总结
  10. adlicensegen怎么生成许可_国家排污许可证申请系统常见问题及解决办法
  11. 江湖魔头-BugkuCTF平台
  12. java实现模拟考试系统_基于JAVA SWING考试模拟系统.doc
  13. 四时之诗:蒙曼品美唐诗读后感
  14. Microsoft HoloLens 技术解谜(下)
  15. python转换字符编码_python 字符串编码转换
  16. 批处理的加密,批处理乱码的查看
  17. 思科路由器命令大全(一)
  18. matlab lte rsrp,LTE 下行速率和SINR、RSRP什么关系?
  19. 第六章 电磁新理论(修补章)
  20. 为什么go语言还没有火起来?go语言有哪些劣势?

热门文章

  1. Rust的所有权与可变性
  2. 《Maven实战》读书笔记
  3. STK中SAR传感器参数elevation angle和exclusion angle的说明
  4. 基于Windows Azure 搭建基于SharePoint 2010 Intranet、Extranet、Internet (1): 安装SharePoint 2010...
  5. Adobe Photoshop for Mac (强大的图形编辑工具) v22.4
  6. iOS实现一个包含若干页面和子页面的“打卡”App
  7. Switcheroo Redirector 重定向chrome插件 谷歌插件
  8. Power Automate 处理 SharePoint Online 人员字段
  9. oracle partition 分区
  10. 读书笔记-精准努力-认识自己抓住优势专注聚焦