poi 对word的处理

本文代码在poi 3.9版本

一、处理docx中的excel

FileInputStream fis = new FileInputStream(ff);
XWPFDocument document = new XWPFDocument(fis);

Iterator<XWPFTable> it = document.getTablesIterator();

 while (it.hasNext()) {
XWPFTable  tb = (XWPFTable) it.next();
XWPFTableRow row = tb.getRow(0);//table.createRow();
XWPFTableCell td = row.getCell(0);
if("归口单位".equals(td.getText().trim())){
XWPFTableRow nrow = tb.createRow();
nrow.addNewTableCell();
nrow.addNewTableCell();
nrow.addNewTableCell();
List<XWPFTableCell> cells = nrow.getTableCells();
for(int j=0;j<cells.size();j++){
cells.get(j).setText("aaa"+j);
}
}

}

二、docx中的文本替换

Iterator<XWPFParagraph> itPara = document  
                        .getParagraphsIterator();
while (itPara.hasNext()) {  
                    XWPFParagraph paragraph = (XWPFParagraph) itPara.next();  
                    List<XWPFRun> runs = paragraph.getRuns(); 
                    for (int i = 0; i < runs.size(); i++) {  
                        String oneparaString = runs.get(i).getText(  
                                runs.get(i).getTextPosition());  
                        for (Map.Entry<String, Object> entry : map.entrySet()) {
            String val = null != entry.getValue()?entry.getValue().toString():"";
            if(null == val){
            val = "";
            }
                            oneparaString = oneparaString.replace(entry.getKey(), val);  
                        }  
                        runs.get(i).setText(oneparaString, 0);  
                    }
}

三、doc中的文本替换

HWPFDocument document = new HWPFDocument(fis);
Range range = document.getRange();  
range.replaceText(entry.getKey(), val);

四、html或者string 转成word

byte[] bb = "<html></html>".getBytes();

ByteArrayInputStream bais = new ByteArrayInputStream(bb);
        POIFSFileSystem poifs = new POIFSFileSystem();
        DirectoryEntry directory = poifs.getRoot();
        DocumentEntry documentEntry = directory.createDocument("WordDocument", bais);
        poifs.writeFilesystem(fos);
        bais.close();



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值