XSSFWorkbook Excel导出图片


if (object instanceof List<?>) {
                    // 针对图片导出
                    List<?> picList = ((List<?>) object);
                    for (int i=0;i<picList.size();i++) {
                        // 图片类型为byte
                        byte[] byteArr = (byte[]) picList.get(i);
                        InputStream in = new ByteArrayInputStream(byteArr);
                        BufferedImage bufferedImage = ImageIO.read(in);
                        int width = bufferedImage.getWidth();
                        int height = bufferedImage.getHeight();
                        int anchorX,anchorY;
                        // 计算图片缩放比例
                        anchorX = 1000;
                        anchorY = (int) (1000 * ((double) height / (double) width));
                        anchorX = anchorX * HSSFShape.LINEWIDTH_DEFAULT;
                        anchorY = anchorY * HSSFShape.LINEWIDTH_DEFAULT;
                        XSSFDrawing xssfDrawing = sheet.createDrawingPatriarch();
                        // 13+i 为从第几列插入,rowIndex + 2为第几行
                        XSSFClientAnchor anchor = new XSSFClientAnchor(0, 0, anchorX, anchorY, 13+i,
                                rowIndex + 2, 13+i, rowIndex + 2);
//XSSFWorkbook workbook
                        xssfDrawing.createPicture(anchor,
                                workbook.addPicture(byteArr, XSSFWorkbook.PICTURE_TYPE_PNG));
                    }
                }
Hutool是一个Java工具包,提供了许多方便的功能,包括Excel操作。其中,Hutool Excel组件可以帮助开发者高效地进行Excel文件的操作,包括数据读写和格式处理。关于导出图片Excel中,Hutool提供了一个简单易用的方法。 Hutool Excel支持将图片作为单元格内容插入到Excel工作表中。你可以使用`AutoExportUtil`类中的方法,如`exportXlsWithSheet`或`exportXlsxWithSheet`,配合`ImageUtils`来加载图片,并将其转换为特定格式(如Base64字符串)然后写入到Excel的单元格中。例如: ```java import cn.hutool.core.io.IoUtil; import cn.hutool.poi.excel.ExcelImportUtil; import cn.hutool.poi.excel.ExcelWriteUtil; import cn.hutool.poi.excel.XSSFWorkbook; import cn.hutool.poi.excel.cell.ImageCell; // 加载图片并转为Base64字符串 String picBase64 = IoUtil.readToString(ImageUtils.getResourceAsStream("path_to_your_image")); // 创建一个Excel工作簿 Workbook workbook = new XSSFWorkbook(); // 获取特定的工作表 Sheet sheet = workbook.createSheet("Sheet1"); // 将图片写入单元格,指定列和行 Row row = sheet.createRow(0); row.createCell(0).setCellValue(picBase64); // 图片作为字符串单元格 row.createCell(0).setCellType(CellType.IMAGE); // 设置为图像类型 row.getCell(0).setImageData(ImageCell.newImageDataFromBase64(picBase64)); // 插入图片 // 导出Excel try (OutputStream out = new FileOutputStream("output.xlsx")) { workbook.write(out); } // 关闭资源 workbook.close(); ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值