Incorporar una marca de agua en una hoja de cálculo ayuda a proteger datos sensibles y a indicar la propiedad del documento. Conholdate.Total for Java proporciona una API sencilla que le permite insertar una marca de agua en Excel en Java con solo unas pocas líneas de código. Esta guía le muestra la configuración requerida, la implementación completa y las opciones de configuración clave para que pueda asegurar sus libros de Excel de manera eficiente.
Cómo insertar una marca de agua en Excel en Java - Paso a paso
Cargar el libro de trabajo con ExcelLoadOptions
- Cargar el libro de Excel: Use
Watermarkerjunto conExcelLoadOptionspara abrir el archivo.
Watermarker watermarker = new Watermarker(inputPath, new ExcelLoadOptions());
La clase Watermarker está documentada en la referencia de la API. Cargar con ExcelLoadOptions le brinda control sobre el uso de memoria, lo cual es esencial para libros de trabajo grandes.
Crear una marca de agua de texto con estilo
- Crear una marca de agua de texto: Definir fuente, color, opacidad, rotación y alineación.
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);
Establecer opacity a 0.3 hace que la marca de agua sea semitransparente, mientras que una rotación de 45 grados la coloca diagonalmente a través de la hoja. Puedes ajustar estos valores para cumplir con las directrices de marca o los requisitos de cumplimiento.
Aplicar la marca de agua a todas las hojas de cálculo
- Agregar la marca de agua al libro de trabajo: El método
addla aplica a cada hoja de cálculo en una sola llamada.
watermarker.add(watermark);
Si necesita control por hoja, puede obtener las hojas individuales mediante watermarker.getWorksheets() y llamar a add en cada una por separado.
Guardar el libro de trabajo con marca de agua
- Guardar el libro de trabajo con marca de agua: Elija
ExcelSaveOptionspara controlar el formato de salida y preservar los metadatos originales.
watermarker.save(outputPath, new ExcelSaveOptions());
El objeto ExcelSaveOptions le permite especificar si desea mantener la versión original del archivo o actualizar al último estándar XLSX.
Liberar recursos para evitar fugas de memoria
- Cerrar el Watermarker: Libere los recursos para evitar fugas de memoria, especialmente al procesar muchos archivos en lote.
watermarker.close();
Cerrar el Watermarker también vacía cualquier operación de escritura pendiente, asegurando que el archivo de salida no se corrompa.
Estos pasos ilustran cómo insertar una marca de agua en Excel en Java, mientras le brindan control sobre la apariencia y el rendimiento.
Ejemplo de Código Completo: Insertar Marca de Agua en Excel con Java - Marca de Agua Completa en Java
El siguiente código demuestra todo el proceso, desde cargar el libro de trabajo hasta guardar el resultado.
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();
}
}
}
}
Nota: Este ejemplo de código muestra la funcionalidad principal. Antes de usarlo en su proyecto, asegúrese de actualizar las rutas de los archivos (
input.xlsx,output_watermarked.xlsx) para que coincidan con la ubicación real de sus archivos, verifique que todas las dependencias requeridas estén correctamente instaladas y pruebe exhaustivamente en su entorno de desarrollo. Si encuentra algún problema, consulte la documentación oficial o póngase en contacto con el equipo de soporte para obtener ayuda.
Preparando el Entorno
Añadir el repositorio Maven y la dependencia
Añade el repositorio Maven de Conholdate y la dependencia del SDK a tu 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>
También puedes descargar los últimos JARs directamente desde la página de descarga. El SDK requiere Java 8 o superior, y un IDE compatible como IntelliJ IDEA o Eclipse facilitará la depuración.
Configurar la licencia (uso en producción)
Antes de ejecutar el código de marca de agua en un entorno de producción, aplique su archivo de licencia:
import com.groupdocs.watermark.License;
License license = new License();
license.setLicense("path/to/Conholdate.Total.Java.lic");
Una licencia temporal está disponible para evaluación en la página de licencia temporal. Para proyectos a largo‑plazo, revise la página de precios para elegir el plan adecuado.
Qué hace que Conholdate.Total for Java sea adecuado para la marca de agua en Excel
Soporte integral de XLS/XLSX
La biblioteca maneja tanto los formatos heredados XLS como los modernos XLSX sin requerir conversión, preservando fórmulas, gráficos y macros.
Modo de transmisión eficiente para libros de trabajo grandes
Al trabajar con libros de trabajo que contienen miles de filas, habilite la transmisión estableciendo loadOptions.setLoadAllWorksheets(false). Esto reduce el consumo de memoria drásticamente.
Opciones avanzadas de estilo de marca de agua
Puede controlar la familia de fuentes, el tamaño, el color, la opacidad, el ángulo de rotación y la alineación. La tabla a continuación resume las propiedades más modificadas comúnmente.
| Propiedad | Valor de ejemplo | Impacto |
|---|---|---|
| Font | new Font("Arial", 36) | Determina el estilo visual del texto de la marca de agua. |
| Color | Color.RED | Establece el color de la marca de agua; se acepta cualquier valor RGB. |
| Opacity | 0.3 (30%) | Controla la transparencia; valores más bajos hacen que la marca de agua sea menos intrusiva. |
| Rotation Angle | 45 grados | Posiciona la marca de agua diagonalmente para una mejor cobertura. |
| Horizontal Alignment | HorizontalAlignment.Center | Coloca la marca de agua horizontalmente. |
| Vertical Alignment | VerticalAlignment.Center | Coloca la marca de agua verticalmente. |
Cobertura automática de hojas de cálculo
Una única llamada a watermarker.add(watermark) propaga la marca de agua a cada hoja, ahorrándote escribir bucles repetitivos.
Opciones de guardado simples
ExcelSaveOptions le permite mantener el formato de archivo original o actualizar a la última versión XLSX, y también puede especificar si desea conservar las macros.
Todas estas capacidades se describen en detalle en la documentación oficial.
Conclusión
En este tutorial aprendiste cómo insertar una marca de agua en Excel en Java usando las potentes características de Conholdate.Total for Java. Siguiendo la guía paso a paso, puedes proteger tus hojas de cálculo con texto personalizado, controlar la apariencia y manejar archivos grandes de manera eficiente. Para implementaciones en producción necesitarás una versión con licencia; explora los precios en la página de precios y obtén una licencia temporal en la página de licencia temporal para evaluar el SDK.
Preguntas frecuentes
¿Cómo agrego una marca de agua de imagen en lugar de texto?
Use la claseImageWatermark, establezca su opacidad y alineación, y agréguela a la instanciaWatermarkeral igual que en el ejemplo de texto. La imagen puede ser un PNG, JPEG, o BMP, y también puede escalarla para que se ajuste a la hoja de cálculo. Consulte la referencia de API para obtener más detalles.¿Será visible la marca de agua después de convertir el libro de trabajo a PDF?
Sí. La marca de agua está incrustada en el libro de trabajo y aparecerá en cualquier formato al que lo conviertas posteriormente, como PDF, al usar Conholdate.Total for Java. El proceso de conversión conserva todos los elementos visuales, incluidas las marcas de agua.¿Puedo controlar la marca de agua por hoja de cálculo?
El SDK aplica la marca de agua a todas las hojas de cálculo por defecto, pero puedes cargar hojas individuales usandowatermarker.getWorksheets().get_Item(index)y llamar aadden cada una de forma selectiva. Esto te brinda un control granular para informes que requieren una marca diferente por hoja.¿Necesito una licencia para desarrollo y pruebas?
Una licencia temporal está disponible para evaluación en la página de licencia temporal. Para uso comercial, adquiera una licencia completa a través de la página de precios. El archivo de licencia debe cargarse en tiempo de ejecución como se muestra en la sección de Configuración.
