Вставка водяного знака в электронную таблицу помогает защитить конфиденциальные данные и указывает на право собственности на документ. Conholdate.Total for Java предоставляет простой API, который позволяет вставлять водяной знак в Excel на Java всего несколькими строками кода. Это руководство проведёт вас через необходимую настройку, полную реализацию и ключевые параметры конфигурации, чтобы вы могли эффективно защищать свои рабочие книги Excel.
Как вставить водяной знак в Excel на Java - пошагово
Загрузка книги с помощью ExcelLoadOptions
- Загрузите книгу Excel: используйте
Watermarkerвместе сExcelLoadOptionsдля открытия файла.
Watermarker watermarker = new Watermarker(inputPath, new ExcelLoadOptions());
Класс Watermarker задокументирован в справка API. Загрузка с ExcelLoadOptions дает вам контроль над использованием памяти, что важно для больших книг.
Создание текстового водяного знака со стилем
- Создайте текстовый водяной знак: задайте шрифт, цвет, непрозрачность, поворот и выравнивание.
Font font = new Font("Arial", 36);
TextWatermark watermark = new TextWatermark("CONFIDENTIAL", font);
watermark.setColor(Color.RED);
watermark.setOpacity(0.3);
watermark.setRotationAngle(45);
watermark.setHorizontalAlignment(HorizontalAlignment.Center);
watermark.setVerticalAlignment(VerticalAlignment.Center);
Установка opacity в 0.3 делает водяной знак полупрозрачным, а поворот на 45 градусов размещает его по диагонали листа. Вы можете изменить эти значения, чтобы соответствовать требованиям бренда или нормативным требованиям.
Применить водяной знак ко всем листам
- Добавить водяной знак в книгу: Метод
addприменяет его ко всем листам в одном вызове.
watermarker.add(watermark);
Если вам нужен контроль на уровне отдельного листа, вы можете получить отдельные листы через watermarker.getWorksheets() и вызвать add для каждого из них отдельно.
Сохранить книгу с водяным знаком
- Сохранить книгу с водяным знаком: Выберите
ExcelSaveOptions, чтобы контролировать формат вывода и сохранить исходные метаданные.
watermarker.save(outputPath, new ExcelSaveOptions());
Объект ExcelSaveOptions позволяет указать, сохранять ли оригинальную версию файла или обновлять её до последнего стандарта XLSX.
Освобождение ресурсов для предотвращения утечек памяти
- Закрыть Watermarker: Освободите ресурсы, чтобы избежать утечек памяти, особенно при обработке большого количества файлов в пакете.
watermarker.close();
Закрытие Watermarker также сбрасывает любые ожидающие операции записи, гарантируя, что выходной файл не будет повреждён.
Эти шаги демонстрируют, как вставить водяной знак в Excel на Java, предоставляя вам контроль над внешним видом и производительностью.
Полный пример кода: Вставка водяного знака в Excel на Java — Полный Java‑водяной знак
Следующий код демонстрирует весь процесс от загрузки рабочей книги до сохранения результата.
import com.groupdocs.watermark.Watermarker;
import com.groupdocs.watermark.contents.TextWatermark;
import com.groupdocs.watermark.common.Font;
import com.groupdocs.watermark.common.Color;
import com.groupdocs.watermark.contents.HorizontalAlignment;
import com.groupdocs.watermark.contents.VerticalAlignment;
import com.groupdocs.watermark.options.load.ExcelLoadOptions;
import com.groupdocs.watermark.options.save.ExcelSaveOptions;
public class ExcelWatermarkExample {
public static void main(String[] args) {
String inputPath = "input.xlsx";
String outputPath = "output_watermarked.xlsx";
Watermarker watermarker = null;
try {
// Load the Excel workbook (works for both XLS and XLSX)
ExcelLoadOptions loadOptions = new ExcelLoadOptions();
// For very large workbooks you can enable streaming mode:
// loadOptions.setLoadAllWorksheets(false);
watermarker = new Watermarker(inputPath, loadOptions);
// Create a text watermark with desired appearance
Font font = new Font("Arial", 36);
TextWatermark watermark = new TextWatermark("CONFIDENTIAL", font);
watermark.setColor(Color.RED);
watermark.setOpacity(0.3); // 30% opacity
watermark.setRotationAngle(45); // diagonal
watermark.setHorizontalAlignment(HorizontalAlignment.Center);
watermark.setVerticalAlignment(VerticalAlignment.Center);
// Apply the watermark to all worksheets
watermarker.add(watermark);
// Save the watermarked workbook
ExcelSaveOptions saveOptions = new ExcelSaveOptions();
watermarker.save(outputPath, saveOptions);
} catch (Exception e) {
e.printStackTrace();
} finally {
if (watermarker != null) {
watermarker.close();
}
}
}
}
Примечание: Этот пример кода демонстрирует базовую функциональность. Прежде чем использовать его в вашем проекте, убедитесь, что обновили пути к файлам (
input.xlsx,output_watermarked.xlsx) в соответствии с фактическим расположением, проверьте, что все необходимые зависимости правильно установлены, и тщательно протестируйте в вашей среде разработки. Если возникнут проблемы, обратитесь к официальной документации или свяжитесь с командой поддержки для получения помощи.
Подготовка окружения
Добавление репозитория Maven и зависимости
Добавьте репозиторий Maven Conholdate и зависимость SDK в ваш pom.xml:
<repositories>
<repository>
<id>conholdate-repo</id>
<name>Conholdate Maven Repository</name>
<url>https://repository.conholdate.com/repo/</url>
</repository>
</repositories>
<dependency>
<groupId>com.conholdate</groupId>
<artifactId>conholdate-total</artifactId>
<version>24.9</version>
<type>pom</type>
</dependency>
Вы также можете скачать последние JAR‑файлы напрямую со страницы загрузки. SDK требует Java 8 или новее, а совместимая IDE, такая как IntelliJ IDEA или Eclipse, упростит отладку.
Настройка лицензирования (производственное использование)
Перед запуском кода водяного знака в производственной среде примените ваш файл лицензии:
import com.groupdocs.watermark.License;
License license = new License();
license.setLicense("path/to/Conholdate.Total.Java.lic");
Временная лицензия доступна для оценки на странице временной лицензии. Для долгосрочных проектов ознакомьтесь со страницей цен, чтобы выбрать подходящий план.
Что делает Conholdate.Total for Java подходящим для добавления водяных знаков в Excel
Полная поддержка XLS/XLSX
Библиотека работает как с устаревшими XLS, так и с современными форматами XLSX без необходимости конвертации, сохраняя формулы, диаграммы и макросы.
Эффективный режим потоковой обработки для больших рабочих книг
При работе с рабочими книгами, содержащими тысячи строк, включите потоковую обработку, установив loadOptions.setLoadAllWorksheets(false). Это значительно снижает потребление памяти.
Расширенные параметры стилизации водяного знака
Вы можете управлять семейством шрифтов, размером, цветом, непрозрачностью, углом поворота и выравниванием. Таблица ниже суммирует наиболее часто настраиваемые свойства:
| Свойство | Пример значения | Влияние |
|---|---|---|
| Font | new Font("Arial", 36) | Определяет визуальный стиль текста водяного знака. |
| Color | Color.RED | Устанавливает цвет водяного знака; принимается любое значение RGB. |
| Opacity | 0.3 (30%) | Контролирует прозрачность; более низкие значения делают водяной знак менее навязчивым. |
| Rotation Angle | 45 degrees | Размещает водяной знак по диагонали для лучшего покрытия. |
| Horizontal Alignment | HorizontalAlignment.Center | Размещает водяной знак по горизонтали. |
| Vertical Alignment | VerticalAlignment.Center | Размещает водяной знак по вертикали. |
Автоматическое покрытие листов
Один единственный вызов watermarker.add(watermark) распространяет водяной знак на каждый лист, избавляя вас от написания повторяющихся циклов.
Simple Save Options
ExcelSaveOptions позволяет сохранять оригинальный формат файла или обновлять до последней версии XLSX, а также позволяет указать, сохранять ли макросы.
Все эти возможности подробно описаны в официальной документации.
Заключение
В этом руководстве вы узнали, как вставить водяной знак в Excel на Java, используя мощные возможности Conholdate.Total for Java. Следуя пошаговому руководству, вы сможете защитить свои таблицы пользовательским текстом, контролировать внешний вид и эффективно работать с большими файлами. Для развертывания в продакшн‑среде потребуется лицензированная версия; изучите цены на странице ценообразования и получите временную лицензию со страницы временной лицензии, чтобы оценить SDK.
Часто задаваемые вопросы
Как добавить водяной знак в виде изображения вместо текста?
Используйте классImageWatermark, задайте его непрозрачность и выравнивание и добавьте его в экземплярWatermarker, как в примере с текстом. Изображение может быть в формате PNG, JPEG, или BMP, также его можно масштабировать под лист. См. API reference для подробностей.Будет ли водяной знак виден после конвертации книги в PDF?
Да. Водяной знак встроен в книгу и будет отображаться в любом формате, в который вы позже конвертируете, например PDF, при использовании Conholdate.Total for Java. Процесс конвертации сохраняет все визуальные элементы, включая водяные знаки.Могу ли я управлять водяным знаком для каждого листа отдельно?
SDK по умолчанию применяет водяной знак ко всем листам, но вы можете загрузить отдельные листы, используяwatermarker.getWorksheets().get_Item(index), и вызватьaddдля каждого из них выборочно. Это дает вам тонкий контроль для отчетов, требующих различного брендинга на каждом листе.Нужна ли лицензия для разработки и тестирования?
Временная лицензия доступна для оценки на странице страница временной лицензии. Для коммерческого использования приобретите полную лицензию через страницу цен. Файл лицензии должен быть загружен во время выполнения, как показано в разделе Setup.
