本文代码在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();