PIO 插入图片到excel 等比放大


            ByteArrayOutputStream byteArrayOut = new ByteArrayOutputStream();
            BufferedImage bufferedImg = ImageIO.read(new File("e:\\111.png"));
            int imgH = bufferedImg.getHeight();
            int imgW = bufferedImg.getWidth();
            ImageIO.write(bufferedImg, "png", byteArrayOut);
            HSSFWorkbook workbook = new HSSFWorkbook();// 创建个空白的workbook
            HSSFSheet sheet = workbook.createSheet();// 创建个空白的sheet
            // 单元格宽度
            int w = sheet.getColumnWidth(0) / 256;
            HSSFRow row = sheet.createRow(0);
            // 单元格高度
            float hp = row.getHeightInPoints();
            int h = (int) (row.getHeight() / hp);
            // sheet.createRow(rownum)
            System.out.println(h);
            HSSFPatriarch patriarch = sheet.createDrawingPatriarch();
            System.out.println("图片:高:宽" + imgH + "==" + imgW);
            System.out.println("单元格:高:宽" + h + "==" + w);
            // 比如你想让图片占10行
            // HSSFClientAnchor 参数
            // dx1 dy1起始单元格x y 坐标
            int dx1 = 0;
            int dy1 = 0;
            // dx2 dy2 结束单元格 x y 坐标
            int dx2 = w;
            int dy2 = h;
            // 起始列 起始行
            short col1 = 0;
            int row1 = 0;
            // 结束列 结束行
            int row2 = 10;// 因为你想占10行 所以这里是10
            int colInt = row2 * w * imgH / imgW / h;
            short col2 = (short) colInt;
            HSSFClientAnchor anchor = new HSSFClientAnchor(dx1, dy1, dx2, dy2,
                    col1, row1, col2, row2);
            patriarch.createPicture(anchor, workbook.addPicture(
                    byteArrayOut.toByteArray(), HSSFWorkbook.PICTURE_TYPE_PNG));
            FileOutputStream fileOut = new FileOutputStream("e:\\111.xls");
            workbook.write(fileOut);
        

 

jar包:

poi-3.8-20120326.jar
commons-codec-1.5.jar

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值