首页 > Office专区 > Excel教程 >

Java 给Excel 添加多行水印

来源:互联网 2023-02-20 17:23:24 版权归原作者所有,如有侵权,请联系我们

在Excel中没有直接添加水印的功能,但可以通过以下介绍的方法来实现类似水印效果。这里以添加多行平铺水印效果为例,详细内容见下文。EG8办公区 - 实用经验教程分享!

工具/原料

  • 编译环境:IntelliJ IDEA 版本 2018
  • Excel测试文档.xlsx 2013版
  • Jdk版本1.8.0
  • Excel jar包:free spire.xls.jar 3.9.1

方法/步骤

  • 1

    在IDEA项目文件下存入用于测试的Excel工作簿,这里以.xlsx格式的Excel为例,也可以是.xls格式。本次代码中的文件路径为:C:UsersAdministratorIdeaProjectsTextWatermark_XLS。文件路径也可以自定义为其他路径。EG8办公区 - 实用经验教程分享!

  • 2

    在程序中引入jar文件,如下图:EG8办公区 - 实用经验教程分享!

    Java 给Excel 添加多行水印EG8办公区 - 实用经验教程分享!

  • 3

    在程序中键入如下代码内容:EG8办公区 - 实用经验教程分享!

    import com.spire.xls.*;

    EG8办公区 - 实用经验教程分享!

    EG8办公区 - 实用经验教程分享!

    import java.awt.*;

    EG8办公区 - 实用经验教程分享!

    import java.awt.image.BufferedImage;

    EG8办公区 - 实用经验教程分享!

    EG8办公区 - 实用经验教程分享!

    import static java.awt.image.BufferedImage.TYPE_INT_ARGB;

    EG8办公区 - 实用经验教程分享!

    EG8办公区 - 实用经验教程分享!

    public class TiledWatermark {

    EG8办公区 - 实用经验教程分享!

    public static void main(String[] args) {

    EG8办公区 - 实用经验教程分享!

    //加载Excel测试文档

    EG8办公区 - 实用经验教程分享!

    Workbook wb = new Workbook();

    EG8办公区 - 实用经验教程分享!

    wb.loadFromFile("test.xlsx");

    EG8办公区 - 实用经验教程分享!

    EG8办公区 - 实用经验教程分享!

    //设置文本和字体大小

    EG8办公区 - 实用经验教程分享!

    Font font = new Font("仿宋", Font.PLAIN, 25);

    EG8办公区 - 实用经验教程分享!

    EG8办公区 - 实用经验教程分享!

    for (int i =0;iwb.getWorksheets().getCount();i )

    EG8办公区 - 实用经验教程分享!

    {

    EG8办公区 - 实用经验教程分享!

    Worksheet sheet = wb.getWorksheets().get(i);

    EG8办公区 - 实用经验教程分享!

    //调用DrawText() 方法插入图片

    EG8办公区 - 实用经验教程分享!

    BufferedImage imgWtrmrk = drawText("内部专用 内部专用 内部专用 内部专用", font, Color.pink, Color.white, sheet.getPageSetup().getPageHeight(), sheet.getPageSetup().getPageWidth());

    EG8办公区 - 实用经验教程分享!

    EG8办公区 - 实用经验教程分享!

    //将图片设置为页眉

    EG8办公区 - 实用经验教程分享!

    sheet.getPageSetup().setCenterHeaderImage(imgWtrmrk);

    EG8办公区 - 实用经验教程分享!

    sheet.getPageSetup().setCenterHeader("&G");

    EG8办公区 - 实用经验教程分享!

    EG8办公区 - 实用经验教程分享!

    //将显示模式设置为Layout

    EG8办公区 - 实用经验教程分享!

    sheet.setViewMode(ViewMode.Layout);

    EG8办公区 - 实用经验教程分享!

    }

    EG8办公区 - 实用经验教程分享!

    EG8办公区 - 实用经验教程分享!

    //保存文档

    EG8办公区 - 实用经验教程分享!

    wb.saveToFile("TiledWatermark.xlsx", ExcelVersion.Version2013);

    EG8办公区 - 实用经验教程分享!

    }

    EG8办公区 - 实用经验教程分享!

    private static BufferedImage drawText (String text, Font font, Color textColor, Color backColor,double height, double width)

    EG8办公区 - 实用经验教程分享!

    {

    EG8办公区 - 实用经验教程分享!

    //定义图片宽度和高度

    EG8办公区 - 实用经验教程分享!

    BufferedImage img = new BufferedImage((int) width, (int) height, TYPE_INT_ARGB);

    EG8办公区 - 实用经验教程分享!

    EG8办公区 - 实用经验教程分享!

    Graphics2D loGraphic = img.createGraphics();

    EG8办公区 - 实用经验教程分享!

    EG8办公区 - 实用经验教程分享!

    //获取文本size

    EG8办公区 - 实用经验教程分享!

    FontMetrics loFontMetrics = loGraphic.getFontMetrics(font);

    EG8办公区 - 实用经验教程分享!

    int liStrWidth = loFontMetrics.stringWidth(text);

    EG8办公区 - 实用经验教程分享!

    int liStrHeight = loFontMetrics.getHeight();

    EG8办公区 - 实用经验教程分享!

    EG8办公区 - 实用经验教程分享!

    //文本显示样式及位置

    EG8办公区 - 实用经验教程分享!

    loGraphic.setColor(backColor);

    EG8办公区 - 实用经验教程分享!

    loGraphic.fillRect(0, 0, (int) width, (int) height);

    EG8办公区 - 实用经验教程分享!

    loGraphic.translate(((int) width - liStrWidth) / 2, ((int) height - liStrHeight) / 2);

    EG8办公区 - 实用经验教程分享!

    //loGraphic.rotate(Math.toRadians(-45));

    EG8办公区 - 实用经验教程分享!

    EG8办公区 - 实用经验教程分享!

    loGraphic.translate(-((int) width - liStrWidth) / 2, -((int) height - liStrHeight) / 2);

    EG8办公区 - 实用经验教程分享!

    loGraphic.setFont(font);

    EG8办公区 - 实用经验教程分享!

    loGraphic.setColor(textColor);

    EG8办公区 - 实用经验教程分享!

    loGraphic.drawString(text, ((int) width - liStrWidth) /6 , ((int) height - liStrHeight) /6);

    EG8办公区 - 实用经验教程分享!

    loGraphic.drawString(text,((int) width - liStrWidth) /3, ((int) height - liStrHeight) /3);

    EG8办公区 - 实用经验教程分享!

    loGraphic.drawString(text,((int) width - liStrWidth) /2, ((int) height - liStrHeight) /2);

    EG8办公区 - 实用经验教程分享!

    loGraphic.dispose();

    EG8办公区 - 实用经验教程分享!

    return img;

    EG8办公区 - 实用经验教程分享!

    }

    EG8办公区 - 实用经验教程分享!

    }EG8办公区 - 实用经验教程分享!

  • 4

    完成以上代码后,执行程序,生成结果文档,可查看水印添加效果,如图所示:EG8办公区 - 实用经验教程分享!

    Java 给Excel 添加多行水印EG8办公区 - 实用经验教程分享!

  • 4该信息非法爬取自百度经验
  • 注意事项

    • 在添加完水印效果后,查看文档时,在“普通视图”水印不可见,需在“页面布局”模式或“打印预览”模式下查看。

    以上方法由办公区教程网编辑摘抄自百度经验可供大家参考!EG8办公区 - 实用经验教程分享!


    标签: excel水印JAVA

    办公区 Copyright © 2016-2023 www.bgqu.net. Some Rights Reserved. 备案号:湘ICP备2020019561号