java poi读取word中附件_Java使用POI读取Word中的表格

这篇博客介绍如何使用Java Apache POI库读取Word文档中的表格。通过示例代码展示读取指定表格的方法,包括遍历表格、单元格和内容的过程。依赖于poi和poi-scratchpad库的4.0.1版本。
摘要由CSDN通过智能技术生成

个人博客 地址:https://www.wenhaofan.com/a/20190627135921

代码package live.autu.word;

import java.io.FileInputStream;

import org.apache.poi.hwpf.HWPFDocument;

import org.apache.poi.hwpf.usermodel.Paragraph;

import org.apache.poi.hwpf.usermodel.Range;

import org.apache.poi.hwpf.usermodel.Table;

import org.apache.poi.hwpf.usermodel.TableCell;

import org.apache.poi.hwpf.usermodel.TableIterator;

import org.apache.poi.hwpf.usermodel.TableRow;

import org.apache.poi.poifs.filesystem.POIFSFileSystem;

/**

* Hello world!

*

*/

public class App {

public static void main(String[] args) {

//doc文档路径

String filePath = "C:\\Users\\autu\\Desktop\\test.doc";

//test.print(filePath,"第一个表");

System.out.println(App.read(filePath,"第一个表"));;

}

/**

* 读取文档中表格

* @param filePath doc路径

* @param set 第几个表格

*/

public static String read(String filePath,String tableName) {

StringBuilder sb=new StringBuilder();

try (FileInputStream in = new FileInputStream(filePath); // 载入文档

POIFSFileSystem pfs = new POIFSFileSystem(in);

HWPFDocument hwpf = new HWPFDocument(pfs);) {

Range range = hwpf.getRange();// 得到文档的读取范围

TableIterator it = new TableIterator(range);

// 迭代文档中的表格

while (it.hasNext()) {

Table tb = (Table) it.next();

// 迭代行,默认从0开始,可以依据需要设置i的值,改变起始行数,也可设置读取到那行,只需修改循环的判断条件即可

outer:for (int i = 0; i 

TableRow tr = tb.getRow(i);

// 迭代列,默认从0开始

for (int j = 0; j 

TableCell td = tr.getCell(j);// 取得单元格

// 取得单元格的内容

for (int k = 0; k 

Paragraph para = td.getParagraph(k);

String s = para.text();

// 去除后面的特殊符号

if (null != s && !"".equals(s)) {

s = s.substring(0, s.length() - 1);

}

s=s.trim();

if(tableName.trim().equals(s)||i!=0) {

sb.append(s + "\t");

} else {

break outer;

}

}

}

sb.append( "\n");

}

}

} catch (Exception e) {

e.printStackTrace();

}

return sb.toString();

}

}

依赖

org.apache.poi

poi

4.0.1

org.apache.poi

poi-scratchpad

4.0.1

效果图

test.doc

控制台打印

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值