java poi读取word中附件_Java POI导入word, 带图片

这篇博客介绍了如何使用Java POI库读取Word文档中的附件和图片。首先展示了导入Word文件并读取简历表格模板的场景。接着,通过代码示例详细解释了如何读取Word中的图片,将图片数据保存到指定路径。最后,演示了读取Word表格信息的方法,特别是跳过不需要的表格,获取到业务数据所在的表格,并遍历每一行和单元格以提取文本信息。
摘要由CSDN通过智能技术生成

1.导入文件示例,word中简历表格模板

2.代码示例分两部分,一部分读取图片

/**

* 导入word(基本信息,word格式)

* @param staffId

* @param baseInfoFile

*/

void importStaffInfo(Integer staffId, MultipartFile file);

-- 读取图片

InputStream inputStream =baseInfoFile.getInputStream();

XWPFDocument doc= newXWPFDocument(inputStream);//一:读取word中的照片 docx,把得到的data写入你要写入的文件

List allPictures =doc.getAllPictures();for(XWPFPictureData picture : allPictures) {byte[] data =picture.getData();

String oriFileName=picture.getFileName();

// 自己定义需要写入的文件地址

String targetPath= ymlConfig.getHeadImagePath() + staffId + oriFileName.substring(oriFileName.lastIndexOf("."));

File targetFile= newFile(targetPath);if (!targetFile.exists()) {if (!targetFile.getParentFile().exists()) {

targetFile.getParentFile().mkdirs();

}

targetFile.createNewFile();

}

FileOutputStream out= newFileOutputStream(targetFile);

out.write(data);

out.close();}

-- 读取表格信息

Iterator it = doc.getTablesIterator();

// 过滤前面不需要的表格

if (it.hasNext()) {

it.next();

}

// 得到需要的第二个表格,业务数据

if (it.hasNext()) {

XWPFTable xwpfTable = it.next();

// 读取每一行

for (int i = 0; i < xwpfTable.getRows().size(); i++) {

XWPFTableRow row = xwpfTable.getRow(i);

if (row != null) {

//根据模板读取需要的数据单元格,从第二列开始读取

for (int j = 1; j < row.getTableCells().size(); j++) {

XWPFTableCell cell = row.getCell(j);

if (cell != null) {

String cellText = cell.getText();

System.out.println();

}

}

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值