Ocultar datos sensibles en libros de Excel es un requisito común para las empresas que comparten informes internamente o con socios. GroupDocs.Merger Cloud SDK for Java permite a los desarrolladores agregar protección con contraseña a archivos XLSX mediante una API REST sencilla. En esta guía aprenderá cómo implementar proteger con contraseña Excel mediante REST en Java, ver un ejemplo completo en Java y ejecutar comandos cURL equivalentes para la integración en la nube.

Requisitos y configuración

Antes de comenzar, asegúrese de tener lo siguiente:

  • Java 8 o superior instalado.
  • Maven o Gradle para la gestión de dependencias.
  • Una cuenta de GroupDocs Cloud con client ID y client secret.
  • Acceso al almacenamiento en la nube donde residirán los archivos Excel.

Agrega la dependencia de Maven a tu pom.xml (o el fragmento equivalente de Gradle):

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

Puedes descargar los últimos JARs desde la página de descarga. Después de agregar la dependencia, crea un objeto de configuración con tus credenciales:

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

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

Con el cliente listo, puedes pasar al flujo de trabajo real de protección con contraseña.

Proteger con contraseña Excel mediante REST en Java: Guía paso a paso

Paso 1: Cargar el documento de origen

Defina la ubicación del archivo XLSX de origen en su almacenamiento en la nube.

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

Paso 2: Establecer la ruta de destino

Especifique dónde se guardará el libro de trabajo protegido.

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

Paso 3: Configurar opciones de protección con contraseña

Cree un objeto ProtectOptions, adjunte la información del archivo, la ruta de salida y la contraseña deseada.

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

Paso 4: Construir la solicitud de protección del documento

Envuelva las opciones en un ProtectDocumentRequest.

ProtectDocumentRequest request = new ProtectDocumentRequest(protectOptions);

Paso 5: Ejecutar la solicitud y manejar la respuesta

Llame al método de la API y procese cualquier error.

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());
}

Para obtener más detalles sobre cada clase, consulte la referencia de API.

Ejemplo completo y funcional para proteger con contraseña Excel mediante REST en Java

El siguiente código demuestra el proceso completo de principio a fin.

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());
        }
    }
}

Nota: Este ejemplo de código muestra la funcionalidad principal. Antes de usarlo en su proyecto, asegúrese de actualizar las rutas de archivo (input.xlsx, output_protected.xlsx) para que coincidan con sus ubicaciones reales, verifique que todas las dependencias requeridas estén instaladas correctamente y pruebe exhaustivamente en su entorno de desarrollo. Si encuentra algún problema, consulte la documentación oficial o comuníquese con el equipo de soporte para obtener ayuda.

Proteger libro de Excel mediante API REST usando cURL

A continuación se muestra un conjunto de comandos cURL que realizan la misma operación de protección con contraseña directamente contra los puntos finales REST.

1. Autenticar y obtener un token de acceso

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"
         }'

La respuesta contiene un access_token que usarás en llamadas posteriores.

2. Cargar el archivo XLSX de origen

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. Solicitar protección con contraseña

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. Descargar el libro de trabajo protegido

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

Estos comandos le permiten integrar el flujo de trabajo de protección en scripts o canalizaciones CI. Para obtener más detalles, consulte la documentación oficial de la API.

Conclusión

Implementar proteger con contraseña Excel mediante REST en Java es sencillo con el GroupDocs.Merger Cloud SDK for Java. Al seguir los pasos anteriores, puedes proteger los libros de Excel, automatizar el proceso en aplicaciones del lado del servidor y mantener los datos sensibles seguros. Recuerda obtener una licencia adecuada para uso en producción; la información de precios está disponible en la página del producto y puedes comenzar con una licencia temporal para evaluar la biblioteca. ¡Feliz codificación!

Preguntas frecuentes

  • ¿Cómo difiere la protección con contraseña de Excel mediante REST en Java del cifrado local?
    La API en la nube realiza el cifrado en el servidor, por lo que no necesitas gestionar bibliotecas criptográficas localmente. El SDK maneja la construcción de la solicitud y el análisis de la respuesta, simplificando la integración.

  • ¿Es posible establecer opciones de protección adicionales, como el modo de solo lectura?
    La clase ProtectOptions actual se centra en la protección mediante contraseña. Para funciones de seguridad más avanzadas, consulte la referencia de API para ver si hay parámetros más recientes.

  • ¿Qué formatos de archivo son compatibles con la protección por contraseña?
    La Merger API actualmente admite XLSX, DOCX, PPTX, y PDF para cifrado. Consulte la documentación oficial para obtener la lista completa.

  • ¿Necesito una licencia para ejecutar el ejemplo en un entorno de desarrollo?
    El desarrollo y las pruebas pueden realizarse con una licencia temporal. Las implementaciones en producción requieren una licencia de pago, que puedes adquirir a través de la página del producto.

Leer más