Java 给Excel添加多行文本水印

作者:小胖吴 | 创建时间: 2023-05-30
在Excel中添加水印可添加单一水印效果,即水印是以单个文本字样来呈现;也可添加多个平铺水印效果,即水印是以多个文本字样来页面中平铺。详细内容见下文。...
Java 给Excel添加多行文本水印

操作方法

在IDEA项目文件夹下存入用于测试的Excel文件,如本次文件路径:C:\Users\Administrator\IdeaProjects\TextWatermark_XLS(文件路径可以自定义为其他路径)

在程序中导入spire.xls.jar文件,如下图:

键入如下代码: import com.spire.xls.*; import java.awt.*; import java.awt.image.BufferedImage; import static java.awt.image.BufferedImage.TYPE_INT_ARGB; public class TiledWatermark { public static void main(String[] args) { //加载Excel测试文档 Workbook wb = new Workbook(); wb.loadFromFile("test.xlsx"); //设置文本和字体大小 Font font = new Font("仿宋", Font.PLAIN, 25); for (int i =0;i<wb.getWorksheets().getCount();i++) { Worksheet sheet = wb.getWorksheets().get(i); //调用DrawText() 方法插入图片 BufferedImage imgWtrmrk = drawText("内部专用 内部专用 内部专用 内部专用", font, Color.pink, Color.white, sheet.getPageSetup().getPageHeight(), sheet.getPageSetup().getPageWidth()); //将图片设置为页眉 sheet.getPageSetup().setCenterHeaderImage(imgWtrmrk); sheet.getPageSetup().setCenterHeader("&G"); //将显示模式设置为Layout sheet.setViewMode(ViewMode.Layout); } //保存文档 wb.saveToFile("TiledWatermark.xlsx", ExcelVersion.Version2013); } private static BufferedImage drawText (String text, Font font, Color textColor, Color backColor,double height, double width) { //定义图片宽度和高度 BufferedImage img = new BufferedImage((int) width, (int) height, TYPE_INT_ARGB); Graphics2D loGraphic = img.createGraphics(); //获取文本size FontMetrics loFontMetrics = loGraphic.getFontMetrics(font); int liStrWidth = loFontMetrics.stringWidth(text); int liStrHeight = loFontMetrics.getHeight(); //文本显示样式及位置 loGraphic.setColor(backColor); loGraphic.fillRect(0, 0, (int) width, (int) height); loGraphic.translate(((int) width - liStrWidth) / 2, ((int) height - liStrHeight) / 2); //loGraphic.rotate(Math.toRadians(-45)); loGraphic.translate(-((int) width - liStrWidth) / 2, -((int) height - liStrHeight) / 2); loGraphic.setFont(font); loGraphic.setColor(textColor); loGraphic.drawString(text, ((int) width - liStrWidth) /6 , ((int) height - liStrHeight) /6); loGraphic.drawString(text,((int) width - liStrWidth) /3, ((int) height - liStrHeight) /3); loGraphic.drawString(text,((int) width - liStrWidth) /2, ((int) height - liStrHeight) /2); loGraphic.dispose(); return img; } }

运行程序,生成如下Excel文档。多行水印效果如图:

点击展开全文

更多推荐

2021年暖气片最受欢迎的材质

都买钢制暖气片?点进来看采暖效果!

使用暖气片有哪些省钱技巧呢

安装卫浴暖气片高度很重要!

暖气片上热下凉该如何解决?

荔枝是几月份的水果?荔枝的功效与作用?

基金股票老是绿,现在有什么好的理财

投资黄金怎么投资?如何从容交易?

如何选择国际黄金期货交易平台?

如何买卖黄金现货?是否那么复杂?

为什么要选择好的炒黄金的软件?

国内正规黄金平台能提供哪些信息?

猫和老鼠的恋爱:带你点评情感中不同依恋风格的相处

如何在北京妇产医院建档?2021北京妇产怀孕建档

供暖结束后,暖气片停水注意事项以及保养措施!

暖气管道移位,知道这些改造更完美

卫生间老是反味怎么办?做好防干!

二次装修时选择什么款式暖气片效果好?

延长暖气片使用寿命,非采暖期要注意以下事项

为何有人说北方采暖费三千元,南方至少要两万元?为什么?

为什么南方更适合暖气片供暖?

集中供暖好还是自己烧燃气供暖好?

家中取暖的方式如何选择?

哪个贵金属交易平台好?好平台有这些特点

贵金属模拟交易做了有什么用?

如何利用现货贵金属交易时间提高盈利?

交易伦敦金开户复杂吗?有哪些地方要注意?

炒黄金怎么炒更稳定?有哪些方法?

月薪五千怎么做好工资理财?

如何使用腾讯理财通的资金管家?