今天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
项目:JBolt极速开发平台