POI对Word的操作

时间:2021-12-25 06:22:00

(1)POI操作Word简介

POI读写Excel功能强大、操作简单。但是POI操作时,一般只用它读取word文档,POI只能能够创建简单的word文档,相对而言POI操作时的功能太少。

(2)POI创建Word文档的简单示例
XWPFDocument doc = new XWPFDocument();// 创建Word文件
XWPFParagraph p = doc.createParagraph();// 新建一个段落
p.setAlignment(ParagraphAlignment.CENTER);// 设置段落的对齐方式
p.setBorderBottom(Borders.DOUBLE);//设置下边框
p.setBorderTop(Borders.DOUBLE);//设置上边框
p.setBorderRight(Borders.DOUBLE);//设置右边框
p.setBorderLeft(Borders.DOUBLE);//设置左边框
XWPFRun r = p.createRun();//创建段落文本
r.setText("POI创建的Word段落文本");
r.setBold(true);//设置为粗体
r.setColor("FF0000");//设置颜色
p = doc.createParagraph();// 新建一个段落
r = p.createRun();
r.setText("POI读写Excel功能强大、操作简单。");
XWPFTable table= doc.createTable(3, 3);//创建一个表格
table.getRow(0).getCell(0).setText("表格1");
table.getRow(1).getCell(1).setText("表格2");
table.getRow(2).getCell(2).setText("表格3");
FileOutputStream out = newFileOutputStream("d:\\POI\\sample.doc");
doc.write(out);

out.close();


(3)POI读取Word文档里的文字
FileInputStream stream = newFileInputStream("d:\\POI\\sample.doc");
XWPFDocument doc = new XWPFDocument(stream);// 创建Word文件
for(XWPFParagraph p : doc.getParagraphs())//遍历段落
{
 System.out.print(p.getParagraphText());
}
for(XWPFTable table : doc.getTables())//遍历表格
{
 for(XWPFTableRow row : table.getRows())
 {
 for(XWPFTableCell cell : row.getTableCells())
 {
 System.out.print(cell.getText());
 }
 }

}

(4)POI读取word文档Demo

import org.apache.poi.POIXMLDocument;
import org.apache.poi.POIXMLTextExtractor;
import org.apache.poi.hwpf.extractor.WordExtractor;
import org.apache.poi.openxml4j.opc.OPCPackage;
import org.apache.poi.xwpf.extractor.XWPFWordExtractor;

public class Test2 {

 public String readWord(String path) {  
        String buffer = "";  
        try {  
            if (path.endsWith(".doc")) {  
                InputStream is = new FileInputStream(new File(path));  
                WordExtractor ex = new WordExtractor(is);
                buffer = ex.getText();
            } else if (path.endsWith("doc")) {  
                OPCPackage opcPackage = POIXMLDocument.openPackage(path);  
                POIXMLTextExtractor extractor = new XWPFWordExtractor(opcPackage);  
               //extractor.hashCode("我");
                buffer = extractor.getText();  
            } else {  
                System.out.println("此文件不是word文件!");  
            }  
        } catch (Exception e) {  
            e.printStackTrace();  
        }  
        return buffer;  

    }  

  public static void main(String[] args) { 

               Test2 tp = new Test2();  
        String content = tp.readWord("D:/字符集.doc"); 

 }

}

(5)POI包

POI对Word的操作

poi需要的jar包https://download.csdn.net/download/fzqzxx/10286782

部分转载自空谷幽澜详细请前往:https://www.cnblogs.com/huajiezh/p/5467821.html