java 中FreeMaker的使用(excel、word),涉及解压缩
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),涉及解压缩相关推荐
- 福利!使用Aspose.Words在Java中以编程方式将Word格式转换为PDF完整指南
在共享文档之前,通常使用Word到PDF的转换.可以使用各种在线Word到PDF转换器,可以转换单个或有限数量的Word文档.但是,随着新兴的MS Word自动化和报告生成解决方案,Word到PDF的 ...
- java中使用jxl导出excel表格的工具类(全网唯一亲测可用,在原来基础上扩展)
java中后台导出excel的话,有两种方案,一是使用poi(不过由于是windows版本的,存在不兼容,但功能更多,更强大),而是使用jxl(纯java编写,不过兼容,简单一些),可以设置输出的ex ...
- Java中导入、导出Excel——HSSFWorkbook 使用
一.介绍 当前B/S模式已成为应用开发的主流,而在企业办公系统中,常常有客户这样子要求:你要把我们的报表直接用Excel打开(电信系统.银行系统).或者是:我们已经习惯用Excel打印.这样在我们实际 ...
- java中使用poi导出Excel详解,kotlin音标
到这个问题,可以设置encoding为双字节.POI可以到www.apache.org下载到. 编译好的jar主要有这样4个:poi包, poi Browser包, poi hdf包, poi hss ...
- Java中的文件解析——Excel解析
在日常的开发过程中,经常会使用到excel工作簿进行数据的保存,那么在java中,通常会使用第三方提供的技术来进行excel文件的解析,比如:Apache POI.JXL.Alibaba EasyEx ...
- java中key的作用_key word ‘final’ 在java 中作用
随着硬件的发展,一般的芯片不会用于裸跑,像android things 这样的系统会越来越多,在嵌入式中c++/java的应用将会越来越多.而且我感觉嵌入式工程师掌握android app的基本开发是 ...
- java使用freemaker自定义路径导出Word关键点讲解版
最近工作遇到需要开发java导出Word操作,这里我选用的模板是freemaker. 导出的前期操作在网络上一找一大把,我这里复述下我的操作: 1.将要导出的模板打到Word中,然后另存为xml格式的 ...
- java利用第三方jar实现excel,word,ppt,txt转pdf格式
最近项目有文件模块的上传预览功能,比如把word文档上传,以后点击可以预览.采用的思路为:文件上传到服务器,然后获取转换成对应的新的PDF文件,然后读取PDF文件.本文着重实现文档上传然后转为PDF. ...
- java读取txt写入excel,java中对txt和excel的读取和写入
txt工具类: package com.rj.bd.xm; import java.io.BufferedReader; import java.io.BufferedWriter; import j ...
最新文章
- thinking in object pool
- python文件读取输出-python分批定量读取文件内容,输出到不同文件中的方法
- SQL高效率语句(一)
- python zipfile_Python中的zipfile模块使用详解
- Apache Commons:Betwixt介绍
- 大象起舞——微软研发如何保持创新力和敏捷性
- GIS专业核心课程电子教材配套实验数据汇总(持续更新)
- aspjpeg已过期_Persits.Jpeg.1错误’800a0004′ AspJpeg组件过期解决方法 - YangJunwei
- gcc 安装在服务器的问题总结
- adlicensegen怎么生成许可_国家排污许可证申请系统常见问题及解决办法
- 江湖魔头-BugkuCTF平台
- java实现模拟考试系统_基于JAVA SWING考试模拟系统.doc
- 四时之诗:蒙曼品美唐诗读后感
- Microsoft HoloLens 技术解谜(下)
- python转换字符编码_python 字符串编码转换
- 批处理的加密,批处理乱码的查看
- 思科路由器命令大全(一)
- matlab lte rsrp,LTE 下行速率和SINR、RSRP什么关系?
- 第六章 电磁新理论(修补章)
- 为什么go语言还没有火起来?go语言有哪些劣势?
热门文章
- Rust的所有权与可变性
- 《Maven实战》读书笔记
- STK中SAR传感器参数elevation angle和exclusion angle的说明
- 基于Windows Azure 搭建基于SharePoint 2010 Intranet、Extranet、Internet (1): 安装SharePoint 2010...
- Adobe Photoshop for Mac (强大的图形编辑工具) v22.4
- iOS实现一个包含若干页面和子页面的“打卡”App
- Switcheroo Redirector 重定向chrome插件 谷歌插件
- Power Automate 处理 SharePoint Online 人员字段
- oracle partition 分区
- 读书笔记-精准努力-认识自己抓住优势专注聚焦