POI插入图片至Excel使用固定的长宽

这篇博客介绍了如何使用Java的POI库在Excel中插入图片,并保持图片的固定大小。作者提到了两种方法,一种是通过指定开始和结束单元格进行平铺,另一种是仅指定开始单元格并按比例缩放。为了实现固定大小,作者建议在第二种方法基础上计算调整系数。文章附带关键代码示例和参考资料链接。
摘要由CSDN通过智能技术生成

使用POI在Excel里插入图片,如何使插入的图片使用固定的大小?先介绍原有的两种方式:

  一种是指定开始和结尾单元格,然后从头画到尾,相当于平铺
  还有一种就是仅指定开始的单元格,图片的大小跟这个单元格的长宽有关,可以放大缩小固定的倍数,相当于左对齐

第一种效果如下:

 


第二种效果如下:

 


第一种方法的关键代码如下:

 1 private void pictureToSheet(Sheet finalSheet, Row row, Cell cell, int pictureIdx) {
 2     Drawing patriarch = finalSheet.createDrawingPatriarch();
 3     ExcelPositionRange excelPositionRange = ExcelTransferUtils.getMergedRegionPositionRange(finalSheet, row.getRowNum(), cell.getColumnIndex());
 4     ClientAnchor anchor = patriarch.createAnchor(0, 0, 1023, 255,
 5             excelPositionRange.getFirstCol(),
 6             excelPositionRange.getFirstRow(),
 7             excelPositionRange.getLastCol(),
 8             excelPositionRange.getLastRow()
 9     );
10     patriarch.createPicture(anchor, pictureIdx);
11 }

注:代码中的excelPositionRange,是俺自定义的一个类型。里边只有四个变量和get/set方法,四个变量分别是单元格的开始、结尾单元格的横纵坐标。这个大家可以根据需要来改。 

PS:其中1023和255指的是每个单元格被切分的份数,指定的是最后的单元格的最右下角的一个点,其方法的源代码在本文最后的附录里。

 

第二种方法的关键代码如下:

 1 private void pictureToSheet(Sheet finalSheet, Row row, Cell cell, int pictureIdx) {
 2     Drawing patriarch = finalSheet.createDrawingPatriarch();
 3     ExcelPositionRange excelPositionRange = ExcelTransferUtils.getMergedRegionPositionRange(finalSheet, row.getRowNum(), cell.getColumnIndex());
 4 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值