使用POI读取word文档
引入jar包
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>4.1.2</version>
</dependency>
遍历word中的表格
File file = new File("data/2.docx"); // Word文件路径
FileInputStream fis = new FileInputStream(file);
XWPFDocument document = new XWPFDocument(fis);
// 遍历所有的表格
for (XWPFTable table : document.getTables()) {
// 遍历表格中的所有行
for (XWPFTableRow row : table.getRows()) {
// 遍历行中的所有单元格
for (XWPFTableCell cell : row.getTableCells()) {
System.out.print(cell.getText() + "\t"); // 输出单元格内容
}
System.out.println();
}
}
编译执行bug
POI 上传文件:Caused by: java.lang.NoClassDefFoundError: org/apache/commons/compress/utils/InputStreamStatistics
找了两个小时终于找到解决方案了
结论:POI 需要依赖commons 而commons 版本太低,缺失util导致,
解决办法:更换 org.apache.commons 高版本依赖即可
升级版本为1.19即可,轻松解决
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-compress</artifactId>
<version>1.19</version>
</dependency>
其他:如果任务执行时,你操作的文件已打开,可能会报错
使用讲解视频(基础):POI-读取 word 文档中的表格内容
使用jxl包读取Excel表格的内容
引入jxl.jar
/*
读取excel表格
*/
File file = new File(filePath);
Workbook workbook = Workbook.getWorkbook(file);
Sheet sheet = workbook.getSheet(0); // 工作簿
String cellData = "";
ArrayList list = new ArrayList();
// 获取第一行第一列 的内容
Cell cell = sheet.getCell(0, 0);
String contents = cell.getContents();
//遍历表格
for (int i = 2; i < sheet.getRows(); i++) { //从数据行开始
for (int j = 0; j < sheet.getColumns(); j++) {
cell = sheet.getCell(j, i);
cellData = cell.getContents();
}
list.add(cellData);
cellData = "";
}
workbook.close();
return list;
PDFBox读取pdf文档的内容
没用过…