MyExcel,是一个集导入、导出、加密 Excel 等多项功能的 Java 工具包。
我们经常会遇到一些需要添加水印的场景,比如上传身份证图片会添加水印说明本图片仅用于身份验证,不做它用等等,Excel导出在部分情况下也存在类似场景。
在MyExcel中添加水印非常简单,最简单的仅需要一行代码excel如何加水印,如:
WatermarkUtil.addWatermark(workbook, "MyExcel导出水印");
效果如下:
其原理是生成一张水印图片,然后作为背景重复展示。
下面我们看下具体的代码。
依赖导入
Maven:
com.github.liaochong
myexcel
4.3.3
Gradle:
compile group: 'com.github.liaochong', name: 'myexcel', version: '4.3.3'
导出实现
try (DefaultStreamExcelBuilder streamExcelBuilder = DefaultStreamExcelBuilder
.of(Customer.class)
.sheetName("客户信息")
.start()) {
// 数据追加
for (int i = 0; i < 100; i++) {
Customer cus= new Customer();
cus.setName("姓名"+i);
cus.setAge("年龄"+i);
streamExcelBuilder.append(cus);
}
// 最终构建
Workbook workbook = defaultExcelBuilder.build();
// 添加水印
WatermarkUtil.addWatermark(workbook, "MyExcel导出水印");
// for javax.servlet
AttachmentExportUtil.export(workbook, "客户信息", response);
}
public class Customer {
@ExcelColumn(title="姓名")
private String name;
@ExcelColumn(title="年龄")
private Integer age;
@ExcelColumn(title="生日")
private String birthday;
}
可以看到,WatermarkUtil作用的是POI的workbook,所以即使是使用其他工具生成的同样可以添加水印。
⚠️ 需要注意的是,当前仅支持xlsx类型workbook添加水印。
有些人可能会问,上述例子只能调整文本,如果我不想使用默认配置,希望使用其他颜色、字体、甚至设置水印之间的宽度,该如何处理呢?
这个在MyExcel中也提供了相应的支持,除了默认设置外,用户也可以传入指定的配置,方法签名如下:
public static void addWatermark(Workbook workbook, Watermark watermark)
参数Watermark属性如下:
text:需要展示的水印文本;color:水印文本颜色,默认为深灰色-#C5CBCF;width:水印图片的宽度,默认为200;height:水印图片的高度,默认为180;font:字体,默认microsoft-yaheiexcel如何加水印,size-16;最后
MyExcel功能非常丰富,如需了解其他功能,请予以留言或移步至仓库文档:Home · liaochong/myexcel Wiki · GitHub
———END———
限 时 特 惠: 本站每日持续更新海量各大内部创业教程,一年会员只需98元,全站资源免费下载 点击查看详情
站 长 微 信: Lgxmw666
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。