Сокрытие конфиденциальных данных в рабочих книгах Excel является распространённой потребностью предприятий, которые делятся отчётами внутри компании или с партнёрами. GroupDocs.Merger Cloud SDK for Java позволяет разработчикам добавить защиту паролем к файлам XLSX через простой REST API. В этом руководстве вы узнаете, как реализовать защиту паролем Excel через REST в Java, увидеть полный пример на Java и выполнить эквивалентные команды cURL для облачной интеграции.

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

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

  • Установлен Java 8 или новее.
  • Maven или Gradle для управления зависимостями.
  • Учётная запись GroupDocs Cloud с client ID и client secret.
  • Доступ к облачному хранилищу, где будут находиться файлы Excel.

Добавьте зависимость Maven в ваш pom.xml (или эквивалентный фрагмент Gradle):

<dependency>
    <groupId>com.groupdocs</groupId>
    <artifactId>groupdocs-merger-cloud</artifactId>
    <version>25.11</version>
</dependency>

Вы можете загрузить последние JAR‑файлы со страницы загрузки. После добавления зависимости создайте объект конфигурации с вашими учётными данными:

String clientId = "YOUR_CLIENT_ID";
String clientSecret = "YOUR_CLIENT_SECRET";

Configuration config = new Configuration(clientId, clientSecret);
MergerApi mergerApi = new MergerApi(config);

С готовым клиентом вы можете перейти к реальному процессу защиты паролем.

Защита Excel паролем через REST в Java: пошаговое руководство

Шаг 1: Загрузите исходный документ

Укажите расположение исходного файла XLSX в вашем облачном хранилище.

FileInfo inputFile = new FileInfo();
inputFile.setFilePath("input.xlsx");   // source Excel file

Шаг 2: Установите путь назначения

Укажите, где будет сохранена защищённая рабочая книга.

String outputPath = "output_protected.xlsx"; // destination file

Шаг 3: Настройка параметров защиты паролем

Создайте объект ProtectOptions, прикрепите информацию о файле, путь вывода и желаемый пароль.

ProtectOptions protectOptions = new ProtectOptions();
protectOptions.setFileInfo(inputFile);
protectOptions.setOutputPath(outputPath);
protectOptions.setPassword("MySecretPassword"); // desired password

Шаг 4: Создание запроса защиты документа

Обёрните параметры в ProtectDocumentRequest.

ProtectDocumentRequest request = new ProtectDocumentRequest(protectOptions);

Шаг 5: Выполнить запрос и обработать ответ

Вызовите метод API и обработайте любые ошибки.

try {
    mergerApi.protectDocument(request);
    System.out.println("Excel file has been password protected successfully.");
    System.out.println("Protected file stored at: " + outputPath);
} catch (ApiException e) {
    System.err.println("Error while protecting the Excel file:");
    System.err.println("Status Code: " + e.getCode());
    System.err.println("Message: " + e.getMessage());
}

Для получения более подробной информации о каждом классе обратитесь к справочнику API.

Полный рабочий пример защиты Excel паролем через REST в Java

Следующий код демонстрирует полный процесс от начала до конца.

import com.groupdocs.merger.cloud.ApiException;
import com.groupdocs.merger.cloud.Configuration;
import com.groupdocs.merger.cloud.api.MergerApi;
import com.groupdocs.merger.cloud.model.FileInfo;
import com.groupdocs.merger.cloud.model.ProtectOptions;
import com.groupdocs.merger.cloud.model.requests.ProtectDocumentRequest;

public class ProtectExcelExample {
    public static void main(String[] args) {
        // Replace with your actual client credentials
        String clientId = "YOUR_CLIENT_ID";
        String clientSecret = "YOUR_CLIENT_SECRET";

        // Initialize the API configuration
        Configuration config = new Configuration(clientId, clientSecret);
        MergerApi mergerApi = new MergerApi(config);

        // Define input and output file locations (relative to the storage root)
        FileInfo inputFile = new FileInfo();
        inputFile.setFilePath("input.xlsx");          // source Excel file
        String outputPath = "output_protected.xlsx";  // destination file

        // Set password protection options
        ProtectOptions protectOptions = new ProtectOptions();
        protectOptions.setFileInfo(inputFile);
        protectOptions.setOutputPath(outputPath);
        protectOptions.setPassword("MySecretPassword"); // desired password

        // Build the request
        ProtectDocumentRequest request = new ProtectDocumentRequest(protectOptions);

        try {
            // Execute the password protection operation
            mergerApi.protectDocument(request);
            System.out.println("Excel file has been password protected successfully.");
            System.out.println("Protected file stored at: " + outputPath);
        } catch (ApiException e) {
            System.err.println("Error while protecting the Excel file:");
            System.err.println("Status Code: " + e.getCode());
            System.err.println("Message: " + e.getMessage());
        }
    }
}

Примечание: Этот пример кода демонстрирует базовый функционал. Перед использованием в вашем проекте убедитесь, что обновили пути к файлам (input.xlsx, output_protected.xlsx) в соответствии с реальными расположениями, проверьте, что все необходимые зависимости установлены корректно, и тщательно протестируйте в вашей среде разработки. Если возникнут проблемы, обратитесь к официальной документации или свяжитесь с командой поддержки для получения помощи.

Защита книги Excel через REST API с использованием cURL

Ниже приведён набор команд cURL, которые выполняют ту же операцию защиты паролем напрямую через REST‑конечные точки.

1. Аутентифицируйтесь и получите токен доступа

curl -X POST "https://api.groupdocs.cloud/v2.0/auth/token" \
     -H "Content-Type: application/json" \
     -d '{
           "client_id": "YOUR_CLIENT_ID",
           "client_secret": "YOUR_CLIENT_SECRET"
         }'

Ответ содержит access_token, который вы будете использовать в последующих вызовах.

2. Загрузите исходный файл XLSX

curl -X PUT "https://api.groupdocs.cloud/v2.0/storage/file/input.xlsx" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -H "Content-Type: application/octet-stream" \
     --data-binary @input.xlsx

3. Запрос защиты паролем

curl -X POST "https://api.groupdocs.cloud/v2.0/merger/protect" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -H "Content-Type: application/json" \
     -d '{
           "fileInfo": { "filePath": "input.xlsx" },
           "outputPath": "output_protected.xlsx",
           "password": "MySecretPassword"
         }'

4. Скачайте защищённую рабочую книгу

curl -X GET "https://api.groupdocs.cloud/v2.0/storage/file/output_protected.xlsx" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -o output_protected.xlsx

Эти команды позволяют интегрировать процесс защиты в скрипты или конвейеры CI. Для получения дополнительной информации см. официальную документацию API.

Заключение

Реализация защита паролем Excel через REST в Java проста с использованием GroupDocs.Merger Cloud SDK for Java. Следуя приведённым выше шагам, вы можете защитить рабочие книги Excel, автоматизировать процесс в серверных приложениях и обеспечить безопасность конфиденциальных данных. Не забудьте получить соответствующую лицензию для использования в продакшене; информация о ценах доступна на странице продукта, и вы можете начать с временной лицензии для оценки библиотеки. Удачной разработки!

FAQs

  • Как защита паролем Excel через REST в Java отличается от локального шифрования?
    Облачный API выполняет шифрование на сервере, поэтому вам не нужно управлять криптографическими библиотеками локально. SDK обрабатывает построение запросов и разбор ответов, упрощая интеграцию.

  • Можно ли установить дополнительные параметры защиты, например режим только для чтения?
    Текущий класс ProtectOptions ориентирован на защиту паролем. Для более продвинутых функций безопасности обратитесь к справка API для получения информации о новых параметрах.

  • Какие форматы файлов поддерживаются для защиты паролем?
    Merger API в настоящее время поддерживает XLSX, DOCX, PPTX, и PDF для шифрования. Обратитесь к официальной документации для полного списка.

  • Нужна ли лицензия для запуска примера в среде разработки?
    Разработка и тестирование могут выполняться с временной лицензией. Для развертывания в продакшн требуется платная лицензия, которую можно приобрести на странице продукта.

Читать дальше