Java 给Excel添加多行文本水印

在Excel中添加水印可添加单一水印效果,即水印是以单个文本字样来呈现;也可添加多个平铺水印效果,即水印是以多个文本字样来页面中平铺。详细内容见下文。
工具/材料
Excel测试文档:.xlsx2013版
编译环境:IntelliJ IDEA2018
Excel jar包:Java系列free spire.xls.jar3.9.1
JDK版本:1.8.0
方法步骤
01.
在IDEA项目文件夹下存入用于测试的Excel文件,如本次文件路径:C:\Users\Administrator\IdeaProjects\TextWatermark_XLS(文件路径可以自定义为其他路径)
02.
在程序中导入spire.xls.jar文件,如下图:

03.
键入如下代码:
import com.spire.xls.*;
import java.awt.*;
import java.awt.image.BufferedImage;
import static java.awt.image.BufferedImage.TYPE_INT_ARGB;
publicclass TiledWatermark{
public static void main(String[]args){
//加载Excel测试文档
Workbookwb=new Workbook();
wb.loadFromFile("test.xlsx");
//设置文本和字体大小
Font font=new Font("仿宋",Font.PLAIN,25);
for(int i=0;i { Worksheet sheet=wb.getWorksheets().get(i); //调用DrawText()方法插入图片 BufferedImageimgWtrmrk=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 BufferedImagedrawText(String text,Font font,Color textColor,Color backColor,doubleheight,doublewidth) { //定义图片宽度和高度 BufferedImageimg=new BufferedImage((int)width,(int)height,TYPE_INT_ARGB); Graphics2DloGraphic=img.createGraphics(); //获取文本size FontMetricsloFontMetrics=loGraphic.getFontMetrics(font); intliStrWidth=loFontMetrics.stringWidth(text); intliStrHeight=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(); returnimg; } } 运行程序,生成如下Excel文档。多行水印效果如图: 版权声明:本站【百科知识大全】文章素材来源于网络或者用户投稿,未经许可不得用于商用,如转载保留本文链接:https://www.zuibaishu.com/article/206.html04.
下一篇:myeclipse怎么导入项目
上一篇:快手作品链接和快手主页链接在哪里