【教程】导出Excel带水印怎么实现?

今天JBolt平台用户需求是导出Excel带水印,正好这几天JBoltExcel傻瓜式工具包升级,增加水印功能,这里演示一下调用方式。


导出的效果还是不错的,但是需要注意的是,不是使用POI5.0最新版,用的方法是4.1.2版本里的。

/**
 * 给excel加水印
 * @param sheet
 * @param image
 * @throws IOException 
 */
public static void addWaterMark(Sheet sheet,BufferedImage image) throws IOException{
    //字节流
    ByteArrayOutputStream os = new ByteArrayOutputStream();
    ImageIO.write(image, "png", os);
    XSSFSheet xssfSheet = (XSSFSheet) sheet;
    XSSFWorkbook workbook = xssfSheet.getWorkbook();
    int pictureIdx = workbook.addPicture(os.toByteArray(), Workbook.PICTURE_TYPE_PNG);
    POIXMLDocumentPart pictureData = workbook.getAllPictures().get(pictureIdx);
    PackagePartName ppn = pictureData.getPackagePart().getPartName();
    String relType = XSSFRelation.IMAGES.getRelation();
    //sheet里添加图片关联
    PackageRelationship pr = xssfSheet.getPackagePart().addRelationship(ppn, TargetMode.INTERNAL, relType, null);
    //设置背景图
    xssfSheet.getCTWorksheet().addNewPicture().setId(pr.getId());
}


只要指定一个sheet,然后把你备好的水印图片放进去进行了


JBolt极速开发平台,省心,省事儿,极速开发,JFinal社区近400家企业的选择!

需要加入联系小木微信:18766735632

image.png

JBolt极速开发平台演示

使用JFinal和JBolt开发的项目名录-01


评论区

小徐同学

2021-09-16 18:12

点赞+ 收藏