pom.xml 引入依赖
<!--水印-->
<dependency><groupId>org.apache.poi</groupId><artifactId>ooxml-schemas</artifactId><version>1.4</version>
</dependency>
//获取当前时间年月日
String calculateDate =DateUtil.formatDateTime(new Date());
try {//添加水印内容为当前日期//调用通用类,设置水印的格式BufferedImage bufferImg = WaterMark.createWaterMark("xlgsm"+calculateDate);// 导出到字节流B'ByteArrayOutputStream os = new ByteArrayOutputStream();ImageIO.write(bufferImg, "png", os);File path = new File(ResourceUtils.getURL("classpath:").getPath());String url = URLDecoder.decode(path.getAbsolutePath(), "utf-8");
//模板路径FileInputStream fileInput = new   FileInputStream(url+"/static/dist/download/XXXXXXXX.xlsx");XSSFWorkbook wb = new XSSFWorkbook(fileInput);fileInput.close();int pictureIdx = wb.addPicture(os.toByteArray(), Workbook.PICTURE_TYPE_PNG);POIXMLDocumentPart poixmlDocumentPart = wb.getAllPictures().get(pictureIdx);//获取每个Sheet表for (int i = 0; i < wb.getNumberOfSheets(); i++) {XSSFSheet sheet = wb.getSheetAt(i);PackagePartName ppn = poixmlDocumentPart.getPackagePart().getPartName();String relType = XSSFRelation.IMAGES.getRelation();PackageRelationship pr = sheet.getPackagePart().addRelationship(ppn, TargetMode.INTERNAL, relType, null);sheet.getCTWorksheet().addNewPicture().setId(pr.getId());//sheet.protectSheet(pwd);}//创建输出流ServletOutputStream out = response.getOutputStream();response.setContentType("application/vnd.ms-excel");//导出模板的名称String fileName = java.net.URLEncoder.encode("导出模板", "UTF-8");String disposition = "attachment; fileName="+fileName+".xlsx";response.setHeader("Content-Disposition", disposition);wb.write(out);out.flush();out.close();wb.close();
} catch (IOException e) {LogUtil.log(e.getMessage(),Level.ERROR,e);
}
/*** 创建水印*/
public class WaterMark {//public static BufferedImage createWaterMark(String content) {Integer width = 450;Integer height = 400;// 获取bufferedImage对象BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);String fontType = "宋体";Integer fontStyle = Font.PLAIN;Integer fontSize = 25;Font font = new Font(fontType, fontStyle, fontSize);// 获取Graphics2d对象Graphics2D g2d = image.createGraphics();image = g2d.getDeviceConfiguration().createCompatibleImage(width, height, Transparency.TRANSLUCENT);g2d.dispose();g2d = image.createGraphics();//设置字体颜色和透明度g2d.setColor(Color.lightGray);// 设置字体g2d.setStroke(new BasicStroke(1));// 设置字体类型  加粗 大小g2d.setFont(font);g2d.shear(0.1,-0.4);//设置倾斜度FontRenderContext context = g2d.getFontRenderContext();Rectangle2D bounds = font.getStringBounds(content, context);double x = (width - bounds.getWidth()) / 2;double y = (height - bounds.getHeight()) / 2;double ascent = -bounds.getY();double baseY = y + ascent;// 写入水印文字原定高度过小,所以累计写水印,增加高度g2d.drawString(content, (int) x, (int) baseY);// 设置透明度g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER));// 释放对象g2d.dispose();return image;}
}

java 导出excel添加水印相关推荐

  1. Java - 导出Excel添加水印、密码

    需求: 导出excel时,添加操作人的用户名.手机号水印.文件密码.基于若依框架的excel导出工具类改造,有三种添加水印方式,此处仅做一个记录. 目录 一. 添加依赖 二.工具类 1.水印处理类 2 ...

  2. java导出excel设置行高列宽_使用POI生成Excel文件,可以自动调整excel列宽

    //autoSizeColumn()方法自动调整excel列宽 importjava.io.FileOutputStream; importorg.apache.poi.hssf.usermodel. ...

  3. java导出excel文件名_怎么解决java导出excel时文件名乱码

    怎么解决java导出excel时文件名乱码 发布时间:2020-06-19 16:59:00 来源:亿速云 阅读:137 作者:元一 java解决导出Excel时文件名乱码的方法示例:String a ...

  4. java 导出excel教程_Java导出Excel表格

    Java导出Excel表格 导出Excel表格需要一个poi-3.9.jar的包,该包在网上可以找到. 第一步,创建Excel对象. HSSFWorkbook workbook = new HSSFW ...

  5. java 浏览器 excel导出excel_使用Java导出Excel表格并由浏览器直接下载——基于POI框架...

    非异步方法 /** * 使用Java导出Excel表格并由浏览器直接下载--基于POI框架 * * @param response * @return * @throws IllegalAccessE ...

  6. java文件无法导出excel文件,【excel表格文件格式无效】java导出excel,excel打不开,报文件格式无效,怎么解决!...

    excel提示 打开的文件.xls的格式与文件扩展名不一致怎么办 如果打开文件的格式与文件的扩展名不一致,只要能够打开就不用去管他. java导出excel,excel打不开,报文件格式无效,怎么解决 ...

  7. Java 导出excel进行换行

    java 导出Excel进行换行 String.valueOf((char)10) 在导出excel 的时候,如果原始文字中含有 \n 字符, 如果把 \n 替换为<br/>,excel不 ...

  8. java导出Excel(POI模式 Ajax下载 Post传参) bootstrap table getVisibleColumns获取显示的列

    工具类 (正式使用) package com.qyj.utils;import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson. ...

  9. java 导出excel 附带图片

    java 导出excel 附带图片,思路将后台数据里保存的图片url转为file ,添加到excel里导出 代码示例 String imgPath = filePath +item.getFilePa ...

最新文章

  1. Guidance Package Manager button doesn’t appear in the VS menu
  2. 年轻人的第一只机器狗,只要1.6万
  3. Python的locals()函数
  4. 【收藏】详解apt、yum、dnf 和 pkg
  5. 在robotframework中连接数据库进行操作
  6. ajax动态获取url参数值,获取URL参数的方法
  7. Linux笔记-压缩包安装jdk1.7(bash与.cshrc)
  8. NTT通信公司在大阪开通运营容灾数据中心
  9. 【Xamarin挖墙脚系列:Android最重要的命令工具ADB】
  10. MFC小笔记:父子窗口传递消息
  11. Java 学习总结(187)—— 轻量级开源日志框架 tinylog 简介
  12. php 回调通知 连连支付_php app支付宝回调(异步通知)详解
  13. python open r w r+ w+ a的区别
  14. win访问linux NFS磁盘映射共享驱动器卡顿
  15. VSphere服务器ESXI4.1.0设置虚拟主机来电开机自启动
  16. SSRS 2012 高级图表类型 -- 圆饼图
  17. Color颜色——颜色模式、颜色基本特征、网页颜色以及其代码
  18. 苹果计算机远程桌面连接,远程桌面连接mac,小编教你苹果mac如何远程桌面连接...
  19. 2020-11-16 MHF-NET乱读集锦
  20. 面试题(二十五)设计模式

热门文章

  1. 前端性能优化 - 使用内容分发网络CDN
  2. linux桌面融合,教育桌面云-融合版
  3. 漫谈功能安全——什么是功能安全
  4. Overload和Override的区别?
  5. DeCAF: A Deep Convolutional Activation Featurefor Generic Visual Recognition阅读报告(2)
  6. html嵌入式的脚本语言,Markdown语法及html内嵌
  7. 常见的水文仪器都有哪些?
  8. 公司财务管理体制设计的原则
  9. 一步一步教你跑DCPDN深度学习去雾网络
  10. Ubuntu快速下载百度云文件