POI解析word中的表格

问题描述

最近有需求要处理word中的表格然后想用POI这个库下了3.7的版本最近又出了3.8的版本一共试过这么两段代码第一段try{FileInputStreamin=newFileInputStream("D:\XBRL.doc");//载入文档POIFSFileSystempfs=newPOIFSFileSystem(in);HWPFDocumenthwpf=newHWPFDocument(pfs);Rangerange=hwpf.getRange();//得到文档的读取范围intparaNum=range.numParagraphs();intm=0;//数组下标String[]ret=newString[paraNum];for(inti=0;i<paraNum;++i){//从每一段落中获取文字,每一段是一个回车Paragraphp=range.getParagraph(i);booleantest=p.isInTable();//判断该Paragraph是否在word的表格中if(test==true){Tabletable=range.getTable(p);//通过第一个在table中的Paragraph来获取整个tableintnumRow=table.numRows();//获取table中的行数for(intj=0;j<numRow;j++){TableRowtablerow=table.getRow(j);//获得一行intnumbercell=tablerow.numCells();//通过tablerow获取单元格个数for(intk=0;k<numbercell;k++){TableCelltablexell=tablerow.getCell(k);//获得单元格intp1=tablexell.numParagraphs();//获取单元格中的Paragraph的个数Stringstr="";for(intl=0;l<p1;l++){Paragraphpara=tablexell.getParagraph(l);str=str+para.text().trim();//得到单元格中的内容}for(intn=m;n<paraNum;){ret[n]=str;//将单元格中的内容方入数组元素中break;}m++;}}}}for(inti=0;i<paraNum;i++){System.out.println(ret[i]);}}catch(Exceptione){e.printStackTrace();}

第二段try{POIFSFileSystemfs=newPOIFSFileSystem(newFileInputStream("D:\XBRL.doc"));HWPFDocumentdoc=newHWPFDocument(fs);Rangerange=doc.getOverallRange();TableIteratorti=newTableIterator(range);//Tabletable=null;while(ti.hasNext()){System.out.println("Gettingtable!");Tabletable=(Table)ti.next();System.out.println("Numberofrows:"+table.numRows());for(inta=0;a<table.numRows();a++){TableRowrow=table.getRow(a);System.out.println("tTablerownumber:"+a);for(intb=0;b<row.numCells();b++){System.out.println("ttTablecellnumber:"+b);TableCelltablecell=row.getCell(b);for(intc=0;c<tablecell.numParagraphs();c++){Paragraphtablepara=tablecell.getParagraph(c);for(intd=0;d<tablepara.numCharacterRuns();d++){CharacterRunrun=tablepara.getCharacterRun(d);System.out.println("ttText:""+run.text()+""");}}}}System.out.println("n");}}catch(Exceptione){e.printStackTrace();}

但是都报错了在一个next()方法调用的地方我看很多人都是用这样的代码解析的想问问错在哪里?或者说是poi版本更新后的问题?

时间: 2024-07-28 16:42:24

POI解析word中的表格的相关文章

文档-POI解析Word , 目录这里有一串TOCo &amp;amp;quot;1-3&amp;amp;quot;hzu.....

问题描述 POI解析Word , 目录这里有一串TOCo "1-3"hzu..... 打算将word文档在自己的安卓应用中打开,网上找了代码,利用poi将文档转换成HTML 再用WebView打开,,,,,但是,我不知道为什么,解析完了之后,整体看起来没问题,目录栏那里出来一串如题的字符串.....TOCo "1-3"hzu..... 解决方案 toc = table of content(目录列表) 但是,怎么用poi自带的接口过滤掉,找了半天也没找... 你解决

java poi解析word问题,读取每段前自动生成的序号或目录结构

问题描述 java poi解析word问题,读取每段前自动生成的序号或目录结构 java中poi3.8 hwpfdocument 读取word 文档,没法独到word 文档每段开头的自动生成的序号 :如:一. (一). 解决方案 好像是没法自动生成序号的,你可以用vba函数编程来增加这些序号

在Word中制作表格 利用表格空间

  在Word中制作表格时,往往会因为几个字或一行(列)的增加使得表格无法按要求完成,特别是有字号和其他格式限制时,经常要为找出这点空间而烦恼.下面介绍几种充分利用表格空间的方法. 1.精确更改列宽 也许本列只需要增加1毫米或2毫米就可以使表格少1行,可是在Word中不能1毫米1毫米地调整,用鼠标拖动表格线不是大就是小.遇到这种情况可以这样进行操作:在工具栏的空白处单击鼠标右键,在快捷菜单中选择"绘图",调处"绘图"工具栏,单击"绘图"工具栏上的

怎么使用poi将word中的指定标记(如${img})替换为图片?

问题描述 怎么使用poi将word中的指定标记(如${img})替换为图片? 解决方案 我第二次看到这个问题了,自己写了一个,你看下能满足你的要求不,http://zyn010101.iteye.com/admin/blogs/1927081解决方案二:http://www.oschina.net/question/731358_79177

用C#在WORD中插入表格:表格的属性为:对齐方式为:左对齐 文字环绕为:环绕

问题描述 用C#在WORD中插入表格:如何将表格的属性设置为:对齐方式为:左对齐文字环绕为:环绕

如何批量处理word中的表格

如何批量处理word中的表格 1 . 批量设置word中的表格宽度 比如,我这有一个word文档有200多个表格(全部是3列的),现在要求第一列宽度3cm,第二列4cm,第三列5cm.一个一个改不太可能吧???执行如下的宏代码就搞定: 点击(此处)折叠或打开 Sub Macro1() Dim MyTable As Table For Each MyTable In ActiveDocument.Tables     MyTable.PreferredWidth = CentimetersToPo

如何让Word中的表格实现任意纵横

在日常办公应用中,我们经常会遇到将一个简历表格中各行内容连接起来作为一列形成新表的情况,Word中没有现成的功能,忽然想起Excel中 "选择性粘贴"中的"转置"功能,但实际操作一下才发现,它只能将个人简历表格的行.列位置互换一下,不能达到上述目的.笔者经过多次实践,终于找到一套可以让表格任意纵横的方法. 方法主要是借助Word中"文字与表格相互转换"功能与"高级替换"功能的配合使用,具体步骤如下: 1. 将表格转换成文字 选

Word中的表格实现任意纵横的方法

  在日常办公应用中,我们经常会遇到将一个简历表格中各行内容连接起来作为一列形成新表的情况,Word中没有现成的功能,忽然想起Excel中"选择性粘贴"中的"转置"功能,但实际操作一下才发现,它只能将个人简历表格的行.列位置互换一下,不能达到上述目的.笔者经过多次实践,终于找到一套可以让表格任意纵.横的方法. 方法主要是借助Word中"文字与表格相互转换"功能与"高级替换"功能的配合使用,具体步骤如下: 1. 将表格转换成文字

在Word中绘制表格的简单方法

  在Word中,如果要绘制简单的表格,其实方法还是挺多的.今天,我们就从工具栏和菜单栏出发,来学习一下如何绘制出简单的表格. Word 方法一:利用菜单栏中工具绘制表格 单击Word2003菜单栏上的"表格"按钮,在弹出的下拉菜单中选择"表格"-->插入-->表格,然后在弹出的"插入表格"对话框中设置好表格的"列数"与"行数"即可. 方法二:使用"常用"工具栏插入表格 点击