JAVA使用Excel导入图片

导入的图片需放在单元格内
代码片段:

	//获取工作簿
	XSSFWorkbook workbook = new XSSFWorkbook(inputStream);
	XSSFSheet sheet = workbook.getSheetAt(1);
	XSSFDrawing patriarch = sheet.createDrawingPatriarch();
	List<XSSFShape> shapes = patriarch.getShapes();
	// 存储图片信息和坐标
	Map<String, byte[]> picMap = new HashMap<>();
	// 处理获取图片信息和坐标
	if (shapes != null && !shapes.isEmpty()) {
		// 过滤出图片的数据
		shapes = shapes.stream().filter(Picture.class::isInstance).collect(Collectors.toList());
		for (XSSFShape xssfShape : shapes) {
			XSSFPicture xssfPicture = (XSSFPicture) xssfShape;
			XSSFClientAnchor xssfClientAnchor = (XSSFClientAnchor) xssfPicture.getAnchor();
			byte[] data = xssfPicture.getPictureData().getData();
			//行和列的下标使用逗号分隔
			String point = xssfClientAnchor.getRow1() + "," + xssfClientAnchor.getCol1();
			// 如果存在这个坐标KEY表示相同单元格中的图片,直接集合添加该图片,不存在该坐标key直接创建添加
			picMap.put(point, data);
		}
	}
	//通过行和列的下标就能找到某个单元格内的图片数据
	byte[] imgByte = picMap.get(1+","+1);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值