java使用POI读取word中的内容

依赖的包

<dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi</artifactId>
            <version>3.9</version>
        </dependency>
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-ooxml</artifactId>
            <version>3.9</version>
        </dependency>

直接上代码:

try {
            InputStream is = new FileInputStream(file);
            XWPFDocument doc = new XWPFDocument(is);
            List<XWPFParagraph> paras = doc.getParagraphs();

获取word的XWPFParagraph集合,word中,基本单元就是XWPFParagraph对象。
要获取XWPFParagraph中的文本,使用这个方法:

String faultPhenomenon = "   " + paras.get(2).getText() + "\n" +
                 paras.get(4).getText();   //故障现象

要获取表格中的内容,还是先获得表格对象集合:

 //获取文档中所有的表格
            List<XWPFTable> tables = doc.getTables();

通过遍历表格,取到其中的内容,放到数组中:

for (XWPFTable table : tables) {
                //表格属性CTTblPr pr = table.getCTTbl().getTblPr();
                //获取表格对应的行
                XWPFTableRow firstRow = table.getRow(0);      //获得第一行
                String secondCell = firstRow.getCell(1).getText();
                rows = table.getRows();
                if("被叫RBC".equals(secondCell)){        //PRI口的表
                    for (XWPFTableRow row : rows) {
                        //获取行对应的单元格
                        cells = row.getTableCells();
                        JSONObject obj = new JSONObject();
                        obj.put("车次号",cells.get(0).getText());
                        obj.put("被叫RBC",cells.get(1).getText());
                        obj.put("起呼时间",cells.get(2).getText());
                        obj.put("呼叫类型",cells.get(3).getText());
                        obj.put("设备号",cells.get(4).getText());
                        obj.put("结束时间",cells.get(5).getText());
                        obj.put("释放原因",cells.get(6).getText());
                        array_1.add(obj);
                    }else{
                    for (XWPFTableRow row : rows) {
                        //获取行对应的单元格
                        cells = row.getTableCells();
                        JSONObject obj = new JSONObject();
                        obj.put("firstCol",cells.get(0).getText());
                        obj.put("secondCol",cells.get(1).getText());
                        array_7.add(obj);
                    }
                }

关闭流就好了:

			close(is);
            JSONObject object = new JSONObject();
            object.put("faultPhenomenon",faultPhenomenon);
            object.put("table_7",array_7);
            System.out.println(object);
            return object.toJSONString();
        }catch (Exception ex){
            ex.printStackTrace();
            return "";
        }

都是经过项目验证过的代码,放心使用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值