如何使用 GroupDocs.Watermark Java 为 Excel 文档添加水印

介绍

在本指南中,您将学习使用 Java 的 GroupDocs.Watermark 库为 Excel 文件添加 水印。高效地管理和处理 Excel 文档对于水印应用或内容提取等任务至关重要。本教程演示如何在 Java 中利用 GroupDocs.Watermark 库来简化这些流程。

快速答案

  • 我可以使用哪个库为 Excel 添加水印? GroupDocs.Watermark for Java.
  • 我可以使用相同的 API 从 Excel 中提取图像吗? 是的——您可以直接读取形状图像。
  • 生产环境使用是否需要许可证? 需要商业许可证;提供免费试用版。
  • 支持哪个 Java 版本? JDK 8 或更高。
  • Maven 是唯一添加该库的方式吗? 不是,您也可以手动下载 JAR。

什么是“如何为 Excel 添加水印”?

为 Excel 添加水印是指以编程方式在 Excel 工作簿上添加文本、图像或形状覆盖层,使水印出现在每个打印或查看的工作表上。这可以保护知识产权并标示文档状态(例如,草稿、机密)。

为什么在 Excel 中使用 GroupDocs.Watermark?

  • 功能完整的 API – 支持 .xlsx、.xls 以及更早的格式。
  • 无需 Microsoft Office 依赖 – 可在任何服务器端 Java 环境中运行。
  • 内置形状处理 – 允许读取、修改或提取 Excel 工作表中的图像。
  • 性能优化 – 以最小的内存占用处理大型工作簿。

先决条件

  • 已安装 JDK 8 或更高版本。
  • 用于依赖管理的 Maven(或手动 JAR 处理)。
  • 基本的 Java 编程知识。

所需库和依赖项

在项目中将 GroupDocs.Watermark 作为依赖项。您可以通过 Maven 添加或直接下载:

Maven

<repositories>
   <repository>
      <id>repository.groupdocs.com</id>
      <name>GroupDocs Repository</name>
      <url>https://releases.groupdocs.com/watermark/java/</url>
   </repository>
</repositories>

<dependencies>
   <dependency>
      <groupId>com.groupdocs</groupId>
      <artifactId>groupdocs-watermark</artifactId>
      <version>24.11</version>
   </dependency>
</dependencies>

直接下载
或者,从 GroupDocs.Watermark for Java releases 下载最新版本。

环境设置要求

  • 确保已安装并配置 JDK 8 或更高版本。
  • 如果您倾向于使用依赖管理,请设置 Maven。

知识先决条件

  • 对 Java 编程的基本了解。
  • 熟悉 Java 中的文件处理。

为 Java 设置 GroupDocs.Watermark

首先,您必须通过 Maven 或从官方网站直接下载来安装该库。GroupDocs 提供免费试用版以测试功能,亦可获取许可证用于长期使用:

  • 免费试用 – 功能受限,适合评估。
  • 临时许可证 – 在短期内解锁所有功能。
  • 购买许可证 – 商业部署所需。

安装后,按如下方式初始化以处理 Excel 文档:

如何为 Excel 添加水印

本节将演示如何加载电子表格、提取图像(或任何形状),以及为水印做准备。

功能 1:加载并访问电子表格内容

步骤 1:为电子表格定义加载选项

SpreadsheetLoadOptions loadOptions = new SpreadsheetLoadOptions();
  • 目的:配置加载电子表格时所需的特定选项。

步骤 2:使用文档路径初始化 Watermarker

"YOUR_DOCUMENT_DIRECTORY/spreadsheet.xlsx" 替换为文件的实际路径。

Watermarker watermarker = new Watermarker("YOUR_DOCUMENT_DIRECTORY/spreadsheet.xlsx", loadOptions);
  • 说明:创建一个 Watermarker 实例,您可以完全控制工作簿。

步骤 3:访问电子表格内容

SpreadsheetContent content = watermarker.getContent(SpreadsheetContent.class);
  • 功能:检索表示工作表、单元格和形状的丰富对象模型。

功能 2:从 Excel(形状)中提取图像

概述

Excel 将图片、图表和文本框存储为 形状。以下代码提取这些形状,使您能够 从 Excel 中提取图像 或在应用水印前检查其属性。

步骤 4:遍历每个工作表

for (SpreadsheetWorksheet worksheet : content.getWorksheets()) {
  • 目的:遍历所有工作表以访问各自的形状。

步骤 5:遍历工作表中的每个形状

for (SpreadsheetShape shape : worksheet.getShapes()) {
    // Display various properties of the shape
    System.out.println(shape.getAutoShapeType());
    System.out.println(shape.getMsoDrawingType());
    System.out.println(shape.getText());

    if (shape.getImage() != null) {
        System.out.println(shape.getImage().getWidth());
        System.out.println(shape.getImage().getHeight());
        System.out.println(shape.getImage().getBytes().length);
    }

    // Display other properties of the shape
    System.out.println(shape.getId());
    System.out.println(shape.getAlternativeText());
    System.out.println(shape.getX());
    System.out.println(shape.getY());
    System.out.println(shape.getWidth());
    System.out.println(shape.getHeight());
    System.out.println(shape.getRotateAngle());
    System.out.println(shape.isWordArt());
    System.out.println(shape.getName());
}
  • 说明:提取详细的形状信息,包括类型、文本内容以及(如果有)图像属性。这是您可以 从 Excel 中提取图像 进行进一步处理或归档的地方。

步骤 6:关闭 Watermarker 实例

watermarker.close();
  • 重要性:在操作完成后关闭 Watermarker 实例以释放资源。

实际应用

这些功能可在实际场景中应用:

  1. 文档自动化 – 自动提取并处理 Excel 报告中的数据,以简化工作流。
  2. 数据完整性检查 – 验证财务电子表格中的形状和嵌入图像,以确保合规。
  3. 与 BI 工具集成 – 将提取的形状数据输入商业智能平台,以获得更丰富的分析。

性能考虑因素

处理大型 Excel 文件时:

  • 仅处理必要的工作表或形状,以降低内存使用。
  • 如果只需要 从 Excel 中提取图像,则跳过单元格和公式。
  • 在真实负载条件下进行测试,并对代码进行性能分析以识别瓶颈。

结论

通过掌握 GroupDocs.Watermark for Java 的这些功能,您可以高效地 为 Excel 工作簿添加水印、提取嵌入图像,并将 Excel 处理集成到更大的自动化流水线中。探索其他功能,例如添加文本水印、旋转水印,或根据工作表内容有条件地应用水印。

下一步

  • 深入了解水印 API,以添加自定义文本或图像水印。
  • 将形状提取与 OCR 结合,以读取图片中的文本。
  • 探索用于 PDF、Word 和图像格式的 GroupDocs SDK,以构建统一的文档处理解决方案。

常见问题解答

  1. 什么是 GroupDocs.Watermark?
    • 一个强大的 Java 库,用于处理文档中的水印及其他内容。
  2. 我可以将 GroupDocs.Watermark 与其他文件类型一起使用吗?
    • 可以,它支持 PDF、图像、Word 文件等。
  3. 我如何排查常见问题?
  4. 使用 GroupDocs.Watermark 的最佳实践是什么?
    • 始终关闭 Watermarker 实例,仅处理所需工作表,并在处理大文件时监控内存。
  5. 我在哪里可以找到更多示例?

常见问答

问:如何为 Excel 工作簿的每个工作表添加文本水印?
答:加载工作簿后,创建一个 TextWatermark 对象,并对每个工作表调用 watermarker.add(watermark, new SpreadsheetWatermarkOptions())

问:我可以仅从 Excel 文件中提取 PNG 图像吗?
答:可以。在处理之前检查 shape.getImage().getBytes() 并通过 shape.getImage().getImageFormat() 判断图像格式。

问:是否可以仅对包含特定关键字的工作表应用水印?
答:完全可以。遍历 content.getWorksheets(),检查单元格值,并在匹配的工作表上有条件地调用 watermarker.add(...)

问:该库是否支持受密码保护的 Excel 文件?
答:支持。在创建 Watermarker 之前,使用 setPassword("yourPassword") 将密码传递给 SpreadsheetLoadOptions

问:本教程使用的 GroupDocs.Watermark 版本是什么?
答:示例针对 GroupDocs.Watermark 24.11

资源

最后更新: 2026-04-01
测试环境: GroupDocs.Watermark 24.11 for Java
作者: GroupDocs

{< /blocks/products/pf/tutorial-page-section >} {< /blocks/products/pf/main-container >} {< /blocks/products/pf/main-wrap-class >} {< blocks/products/products-backtop-button >}