首先请回答的大神们审题:POI。若不懂POI的,只知道word操作的,请绕道,我懒得看,您也省得粘贴复制。-----------------写在问题前面Iterator<...
首先请回答的大神们审题:POI。若不懂POI的,只知道word操作的,请绕道,我懒得看,您也省得粘贴复制。
-----------------写在问题前面
Iterator<XWPFParagraph> itPg= xwpf.getParagraphsIterator();
这里取一个段落循环代码如下:
XWPFParagraph paragraph1=itPg.next();
List<XWPFRun> listRuns=paragraph1.getRuns();
while (listRuns.size()>0)
{
paragraph1.removeRun(0);//这里是移除段落内容
}
最后文件输出,我有很多要清空的段落,而这移除后的段落成了一个个换行,最终形成了一个空白页。
所以,你也可以理解我为什么要删去多余的换行了。谢谢个位大神,不吝赐教!再行拜谢!
思路:
//首先在之前遍历时,打上删除标记
XWPFRun run1=paragraph1.createRun();
run1.setText("$删除");
paragraph1.addRun(run1);
..... ....
//删除多余
List<IBodyElement> listBe= xwpf.getBodyElements();
for(int i=0;i<listBe.size();i++)
{
IBodyElement ibe=listBe.get(i);
//所有Paragraph
if(ibe.getElementType().equals(BodyElementType.PARAGRAPH))
{
List<XWPFParagraph> lp= ibe.getBody().getParagraphs();
boolean flag=false;
for(int j=0;j<lp.size();j++)
{
XWPFParagraph ph=lp.get(j);
if(ph.getText().indexOf("$删除")!=-1)
{
flag=xwpf.removeBodyElement(listBe.size()-1);
break;
}
}
if(flag)
i--;
}
}