项目需要解析word表格
没有找到现成的代码,怎么办呐?看源码吧
给出代码
package com.util; import org.apache.poi.xwpf.usermodel.*; import org.jeecgframework.core.common.model.json.ajaxjson; import org.jeecgframework.poi.word.entity.myxwpfdocument; import org.jeecgframework.poi.word.parse.excel.excelentityparse; import org.slf4j.logger; import org.slf4j.loggerfactory; import javax.imageio.stream.fileimageoutputstream; import java.io.*; import java.util.iterator; import java.util.list; public class wordimportutil { private static final logger logger = loggerfactory.getlogger(wordimportutil.class); public static myxwpfdocument getxwpfdocumen(inputstream is) { try { myxwpfdocument doc = new myxwpfdocument(is); return doc; } catch (exception e) { logger.error(e.getmessage(), e); } finally { try { is.close(); } catch (exception e) { logger.error(e.getmessage(), e); } } return null; } public static ajaxjson parsethistable(myxwpfdocument doc){ iterator<xwpftable> ittable = doc.gettablesiterator(); xwpftable table; while (ittable.hasnext()) { table = ittable.next(); xwpftablerow row; list<xwpftablecell> cells; object listobj; excelentityparse excelentityparse = new excelentityparse(); for (int i = 0; i < table.getnumberofrows(); i++) { if(i ==0) continue; row = table.getrow(i); cells = row.gettablecells(); for (int j = 0; j < cells.size(); j++) { xwpftablecell cell = cells.get(j); if(j == 10){ getcellimage(cell); } //输出当前的单元格的数据 system.out.print(cell.gettext() + "\t"); } } } return null; } public static string getcellimage(xwpftablecell cell){ list<xwpfparagraph> xwpfparagraphs = cell.getparagraphs(); if(xwpfparagraphs == null) return null; for(xwpfparagraph xwpfparagraph:xwpfparagraphs){ list<xwpfrun> xwpfrunlist = xwpfparagraph.getruns(); if(xwpfrunlist==null) return null; for(xwpfrun xwpfrun:xwpfrunlist){ list<xwpfpicture> xwpfpicturelist = xwpfrun.getembeddedpictures(); if(xwpfparagraph==null) return null; for(xwpfpicture xwpfpicture:xwpfpicturelist){ xwpfpicture.getpicturedata().getdata(); xwpfpicture.getpicturedata().getfilename(); byte2image( xwpfpicture.getpicturedata().getdata(),"d:/"+ xwpfpicture.getpicturedata().getfilename()); } } } return ""; } public static void byte2image(byte[] data,string path){ if(data.length<3||path.equals("")) return; fileimageoutputstream imageoutput = null; try{ imageoutput = new fileimageoutputstream(new file(path)); imageoutput.write(data, 0, data.length); system.out.println("make picture success,please find image in " + path); } catch(exception ex) { system.out.println("exception: " + ex); ex.printstacktrace(); }finally { try { imageoutput.close(); } catch (ioexception e) { e.printstacktrace(); } } } public static void main(string[] args) throws exception{ myxwpfdocument myxwpfdocument = getxwpfdocumen(new fileinputstream("d:/园艺作物加工副产物适宜性评价填写.docx")); parsethistable(myxwpfdocument); } }
如对本文有疑问, 点击进行留言回复!!
(四)组件注册--@ComponentScan--Filter属性
[算法练习-剑指offer]题18.二叉树的镜像(Java)
08#.Java SE中:JAVA基础中的 类的加载器、反射、暴力反射
SpringBoot+Mybatis+Durid整合多数据源的三种方式,第一种
网友评论