Как искать изображения в Excel с помощью GroupDocs.Watermark Java

Поиск конкретных изображений внутри книг Excel может быть утомительным, особенно при работе с большими файлами или множеством встроенных графических объектов. How to search images быстро становится критическим вопросом для всех, кто автоматизирует рабочие процессы с документами. В этом руководстве мы покажем, как искать изображения в электронных таблицах Excel с помощью GroupDocs.Watermark Java, а также рассмотрим основные шаги по эффективной load Excel file java в проектах.

Быстрые ответы

  • Какой самый быстрый способ найти встроенное изображение? Используйте ImageDctHashSearchCriteria с SpreadsheetSearchableObjects.AttachedImages.
  • Нужна ли специальная лицензия? Временная или пробная лицензия разблокирует полные возможности поиска.
  • Какая зависимость Maven требуется? Добавьте com.groupdocs:groupdocs-watermark в ваш pom.xml.
  • Можно ли ограничить поиск одной листом? Да, настройте SpreadsheetLoadOptions, указав имя листа.
  • API потокобезопасен? Все публичные методы безопасны для одновременного использования после правильной инициализации.

ImageDctHashSearchCriteria определяет DCT‑хеш, используемый для сравнения изображений. SpreadsheetSearchableObjects.AttachedImages ограничивает поиск встроенными картинками.

Что означает “how to search images” в контексте GroupDocs.Watermark?

“How to search images” относится к программному поиску встроенных объектов‑картинок внутри документа с использованием API Watermarker. Библиотека сканирует каждый лист, извлекает объекты‑картинки, вычисляет их хеш дискретного косинусного преобразования (DCT) и сравнивает его с хешем целевого изображения, возвращая любые совпадения в виде объектов watermark, которые можно далее обрабатывать.

Почему использовать GroupDocs.Watermark для поиска изображений в Excel?

GroupDocs.Watermark поддерживает более 50 форматов ввода и вывода — включая XLSX, XLS, CSV и ODS — при обработке многосотстраничных книг без загрузки всего файла в память. Его алгоритм DCT‑хеша определяет визуально похожие изображения с точностью > 95 %, существенно уменьшая количество ложных срабатываний. Кроме того, библиотека предоставляет потоковый доступ, позволяя работать с файлами, превышающими доступную ОЗУ, и имеет встроенную поддержку защищённых паролем книг, что делает её подходящей для корпоративных автоматизированных конвейеров.

Предварительные требования

Прежде чем начать, убедитесь, что у вас есть:

  • Java Development Kit (JDK) 8+ установлен и настроен в вашем PATH.
  • Maven для управления зависимостями (или вы можете загрузить JAR‑файлы вручную).
  • Лицензия GroupDocs.Watermark (пробная, временная или постоянная) для разблокировки API поиска.
  • Базовое знакомство с коллекциями Java и обработкой исключений.

Необходимые библиотеки и зависимости

Чтобы работать с GroupDocs.Watermark Java, настройте окружение с помощью Maven или загрузите необходимые библиотеки. Убедитесь, что у вас есть:

  • Конфигурация Maven: Добавьте репозиторий GroupDocs и зависимость в ваш pom.xml.
  • Java Development Kit (JDK): Требуется версия 8 или выше.

Требования к настройке окружения

Убедитесь, что Java правильно установлена в вашей системе, а также Maven для управления зависимостями, если вы выбираете этот способ установки.

Требования к знаниям

Базовое понимание программирования на Java и знакомство с программной обработкой файлов Excel будут полезны. Если вы новичок в этих концепциях, сначала изучите вводные ресурсы.

Как настроить GroupDocs.Watermark для Java?

Загрузите ваш Maven‑проект, добавьте зависимость и инициализируйте Watermarker с соответствующими настройками. Этот двухшаговый процесс подготовит вас к поиску. Сначала добавьте репозиторий Maven и зависимость в ваш pom.xml, затем создайте экземпляр Watermarker, передав путь к файлу Excel и объект WatermarkLoadOptions, который указывает нужный лист и параметры поиска. SpreadsheetLoadOptions позволяет указать, какие листы загружать, и настроить параметры поиска, такие как чувствительность к регистру. Watermarker — основной входной пункт для загрузки документов и выполнения операций поиска или водяных знаков.

<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>

Как загрузить Excel файл java с конкретными настройками поиска?

Загрузите книгу, указав библиотеке искать только вложенные изображения. Такой целенаправленный подход сокращает время обработки до 30 % для типичных таблиц.

import com.groupdocs.watermark.Watermarker;
// Basic initialization code here...

Как настроить поиск, чтобы он охватывал только вложенные изображения?

enum SpreadsheetSearchableObjects позволяет точно указать, что сканировать. Установка значения AttachedImages ограничивает движок объектами‑картинками, игнорируя текст, формулы или диаграммы.

import com.groupdocs.watermark.WatermarkerSettings;
import com.groupdocs.watermark.options.SpreadsheetLoadOptions;

WatermarkerSettings settings = new WatermarkerSettings();
settings.getSearchableObjects().setSpreadsheetSearchableObjects(SpreadsheetSearchableObjects.AttachedImages);

Как выполнить поиск изображения с использованием критериев DCT‑хеша?

Метод DCT‑хеша создаёт компактный отпечаток эталонного изображения и сравнивает его с каждым встроенным изображением, возвращая совпадения с высокой визуальной схожестью.

import com.groupdocs.watermark.Watermarker;

String filePath = "YOUR_DOCUMENT_DIRECTORY/spreadsheet.xlsx";
SpreadsheetLoadOptions loadOptions = new SpreadsheetLoadOptions();
Watermarker watermarker = new Watermarker(filePath, loadOptions, settings);

Как определить критерий поиска DCT‑хеш?

ImageDctHashSearchCriteria инкапсулирует эталонное изображение и необязательный порог схожести. Вы можете изменить порог (0‑100), чтобы ужесточить или ослабить совпадения.

// Reuse the previous configuration from the 'Load Spreadsheet' section.

Как выполнить поиск и обработать результаты?

Вызов watermarker.search(criteria) возвращает коллекцию объектов Watermark. Итерируйте коллекцию, чтобы получить номера страниц, адреса ячеек или заменить изображение.

import com.groupdocs.watermark.search.ImageDctHashSearchCriteria;

String imagePath = "YOUR_DOCUMENT_DIRECTORY/sample_image.png";
ImageDctHashSearchCriteria criteria = new ImageDctHashSearchCriteria(imagePath);

Практические применения

Ниже приведены реальные сценарии, где эти возможности проявляют себя:

  1. Системы управления документами: Автоматически индексировать и помечать таблицы на основе встроенных логотипов или фотографий продуктов.
  2. Аудит данных: Проверять, что визуальные данные (диаграммы, скриншоты) не изменены, сравнивая DCT‑хеши между версиями.
  3. Проверка контента: Убедиться, что в финансовых отчётах или маркетинговых презентациях используются только авторизованные бренд‑активы.

Соображения по производительности

Чтобы приложение оставалось быстрым:

  • Ограничьте поиск только AttachedImages; это в среднем снижает нагрузку на CPU примерно на ~30 %.
  • Обрабатывайте большие файлы по частям, загружая отдельные листы вместо всей книги.
  • Повторно используйте WatermarkerSettings для нескольких поисков, чтобы избежать повторного создания объектов.
  • Следите за памятью с помощью инструментов профилирования Java; библиотека потоково передаёт данные, но очень большие изображения всё равно могут влиять на кучу.

Распространённые проблемы и решения

СимптомВероятная причинаРешение
Не возвращено результатовОбъекты поиска установлены в NoneУстановите SpreadsheetSearchableObjects.AttachedImages.
OutOfMemoryError при файле в 500 страницВся книга загружена в памятьИспользуйте SpreadsheetLoadOptions с setLoadAllSheets(false) и загружайте листы по отдельности.
Ложные срабатывания при сравнении хешейПорог слишком низкий (например, 30)Увеличьте порог схожести до 80‑90 для более строгого сопоставления.

Часто задаваемые вопросы

Q: Какие форматы файлов может читать GroupDocs.Watermark для Excel?
A: Поддерживает XLSX, XLS, CSV и ODS, обрабатывая как устаревшие, так и современные структуры книг.

Q: Можно ли искать изображения, которые не вложены (например, плавающие формы)?
A: Да, установив SpreadsheetSearchableObjects.All, вы можете включить плавающие картинки, диаграммы и другие графические объекты.

Q: Насколько точное сопоставление DCT‑хеша?
A: Алгоритм достигает > 95 % обнаружения схожести для изменённых размеров или слегка перекрашенных изображений, что делает его идеальным для проверки бренда.

Q: Можно ли автоматически заменять найденные изображения?
A: Конечно. После нахождения Watermark вызовите watermarker.replace(watermark, newImagePath), чтобы заменить графику.

Q: Работает ли библиотека в Linux‑контейнерах?
A: Да, GroupDocs.Watermark написан полностью на Java и работает на любой платформе с совместимой JRE, включая Docker‑контейнеры на Linux.

Заключение

В этом руководстве мы рассмотрели how to search images внутри книг Excel с помощью GroupDocs.Watermark Java, от настройки окружения до выполнения поиска на основе DCT‑хеша. Ограничив сканирование только вложенными изображениями и используя мощное сравнение хешей, вы можете значительно ускорить рабочие процессы проверки изображений, сохраняя высокую точность. Далее изучите возможности библиотеки по добавлению водяных знаков или интегрируйте логику поиска в более крупный конвейер обработки документов.


Last Updated: 2026-06-01
Tested With: GroupDocs.Watermark 23.12 for Java
Author: GroupDocs

Resources

import com.groupdocs.watermark.PossibleWatermarkCollection;

PossibleWatermarkCollection possibleWatermarks = watermarker.search(criteria);

Ресурсы

Связанные руководства