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