java poi Excel内图片获取存储并关联数据入库

本文介绍了一种从Excel文件中读取并定位图片的方法,并将图片与其所在单元格的数据进行关联。通过使用HSSFWorkbook和HSSFSheet等类,可以获取.xls文件中的图片位置及其对应的行列信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目前只找到HSSFSheet 可以获取到图片位置Xss获取不到

先获取所有图片 然后根据图片位置把图片对应数据关联

if (file.getOriginalFilename().toLowerCase().endsWith("xls")) {

HSSFWorkbook workbook = (HSSFWorkbook) WorkbookFactory.create(file.getInputStream());
List<HSSFPictureData> pictures = workbook.getAllPictures();
HSSFSheet sheet = (HSSFSheet) workbook.getSheetAt(0);


for (HSSFShape shape : sheet.getDrawingPatriarch().getChildren()) {
HSSFClientAnchor anchor = (HSSFClientAnchor) shape.getAnchor();
if (shape instanceof HSSFPicture) {
HSSFPicture pic = (HSSFPicture) shape;
int row = anchor.getRow2()-2;
int col = anchor.getCol2();
System.out.println("--->" + anchor.getRow2() + ":" + anchor.getCol2());
// map.put(row+":"+col, row+":"+col);
int pictureIndex = pic.getPictureIndex() - 1;
PictureData picData = pictures.get(pictureIndex);
// System.out.println(row + ":" + col+"--->" + picData);
String ext = picData.suggestFileExtension();
byte[] data = picData.getData();
// if (ext.equals("jpeg")) {
// 把文件写存储系统
FileStorage lf = FileStorageFcatory.get();
String fileStorageName = lf.write(data, ext);
System.out.println(fileStorageName);
list.get(row).setProImg(list.get(row).getProImg() + "|" +R.getRequest().getContextPath()+Global.FILESTORAGE_BASE_URL+fileStorageName);
// Collections.reverse(list);
// }
}
}

} else {

logger.debug("xlsx");

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值