Việc chèn watermark vào bảng tính giúp bảo vệ dữ liệu nhạy cảm và thể hiện quyền sở hữu tài liệu. Conholdate.Total for Java cung cấp một API đơn giản cho phép bạn chèn Watermark vào Excel trong Java chỉ với vài dòng mã. Hướng dẫn này sẽ đưa bạn qua các bước thiết lập cần thiết, triển khai đầy đủ và các tùy chọn cấu hình chính để bạn có thể bảo mật các workbook Excel một cách hiệu quả.

Cách chèn Watermark vào Excel trong Java - Từng bước

Tải Workbook bằng ExcelLoadOptions

  1. Tải workbook Excel: Sử dụng Watermarker cùng với ExcelLoadOptions để mở tệp.
Watermarker watermarker = new Watermarker(inputPath, new ExcelLoadOptions());

Lớp Watermarker được mô tả trong API reference. Việc tải bằng ExcelLoadOptions cho phép bạn kiểm soát việc sử dụng bộ nhớ, điều này rất quan trọng đối với các workbook lớn.

Tạo Đánh Dấu Văn Bản với Định Dạng

  1. Tạo một đánh dấu văn bản: Xác định phông chữ, màu sắc, độ trong suốt, góc xoay và căn chỉnh.
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);

Cài đặt opacity thành 0.3 làm cho đánh dấu bán trong suốt, trong khi góc xoay 45 độ đặt nó chéo qua trang. Bạn có thể điều chỉnh các giá trị này để đáp ứng các hướng dẫn thương hiệu hoặc yêu cầu tuân thủ.

Áp dụng Watermark cho Tất cả các Worksheet

  1. Thêm watermark vào workbook: Phương thức add áp dụng nó cho mọi worksheet trong một lần gọi duy nhất.
watermarker.add(watermark);

Nếu bạn cần kiểm soát từng worksheet, bạn có thể lấy các worksheet riêng lẻ thông qua watermarker.getWorksheets() và gọi add trên mỗi worksheet một cách riêng biệt.

Lưu Workbook Đánh Dấu Nước

  1. Lưu workbook đã đánh dấu nước: Chọn ExcelSaveOptions để kiểm soát định dạng đầu ra và bảo tồn siêu dữ liệu gốc.
watermarker.save(outputPath, new ExcelSaveOptions());

Đối tượng ExcelSaveOptions cho phép bạn chỉ định việc giữ phiên bản tệp gốc hay nâng cấp lên tiêu chuẩn XLSX mới nhất.

Giải phóng tài nguyên để tránh rò rỉ bộ nhớ

  1. Đóng Watermarker: Giải phóng tài nguyên để tránh rò rỉ bộ nhớ, đặc biệt khi xử lý nhiều tệp trong một lô.
watermarker.close();

Đóng Watermarker cũng sẽ flush bất kỳ hoạt động ghi nào đang chờ, đảm bảo tệp đầu ra không bị hỏng.

Các bước này minh họa cách chèn Watermark vào Excel trong Java đồng thời cung cấp cho bạn khả năng kiểm soát giao diện và hiệu suất.

Ví dụ mã hoàn chỉnh: Chèn Watermark vào Excel trong Java - Watermark Java đầy đủ

Mã sau đây minh họa toàn bộ quá trình từ việc tải workbook đến việc lưu kết quả.

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

Lưu ý: Ví dụ mã này trình bày chức năng cốt lõi. Trước khi sử dụng trong dự án của bạn, hãy chắc chắn cập nhật các đường dẫn tệp (input.xlsx, output_watermarked.xlsx) để phù hợp với vị trí tệp thực tế của bạn, xác minh rằng tất cả các phụ thuộc cần thiết đã được cài đặt đúng cách, và kiểm tra kỹ lưỡng trong môi trường phát triển của bạn. Nếu bạn gặp bất kỳ vấn đề nào, vui lòng tham khảo tài liệu chính thức hoặc liên hệ với đội hỗ trợ để được trợ giúp.

Chuẩn bị môi trường

Thêm kho Maven và phụ thuộc

Thêm kho Maven của Conholdate và phụ thuộc SDK vào pom.xml của bạn:

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

Bạn cũng có thể tải xuống các tệp JAR mới nhất trực tiếp từ trang tải xuống. SDK yêu cầu Java 8 trở lên, và một IDE tương thích như IntelliJ IDEA hoặc Eclipse sẽ giúp việc gỡ lỗi dễ dàng hơn.

Cấu hình cấp phép (Sử dụng trong môi trường sản xuất)

Trước khi chạy mã watermark trong môi trường sản xuất, hãy áp dụng tệp giấy phép của bạn:

import com.groupdocs.watermark.License;

License license = new License();
license.setLicense("path/to/Conholdate.Total.Java.lic");

Một giấy phép tạm thời có sẵn để đánh giá tại trang giấy phép tạm thời. Đối với các dự án dài hạn, hãy xem lại trang giá để chọn gói phù hợp.

Điều gì khiến Conholdate.Total for Java phù hợp cho Watermark trong Excel

Hỗ trợ toàn diện XLS/XLSX

Thư viện xử lý cả định dạng XLS cũ và định dạng XLSX hiện đại mà không cần chuyển đổi, đồng thời bảo tồn công thức, biểu đồ và macro.

Chế độ truyền dữ liệu hiệu quả cho các workbook lớn

Khi làm việc với các workbook chứa hàng ngàn hàng, hãy bật chế độ truyền dữ liệu bằng cách đặt loadOptions.setLoadAllWorksheets(false). Điều này giảm đáng kể việc tiêu thụ bộ nhớ.

Các tùy chọn phong cách đánh dấu nền phong phú

Bạn có thể kiểm soát phông chữ, kích thước, màu sắc, độ trong suốt, góc xoay và căn chỉnh. Bảng dưới đây tóm tắt các thuộc tính thường được điều chỉnh nhất:

Thuộc tínhGiá trị ví dụẢnh hưởng
Fontnew Font("Arial", 36)Xác định kiểu dáng trực quan của văn bản watermark.
ColorColor.REDĐặt màu watermark; bất kỳ giá trị RGB nào cũng được chấp nhận.
Opacity0.3 (30%)Kiểm soát độ trong suốt; giá trị thấp hơn làm watermark ít xâm phạm hơn.
Rotation Angle45 degreesĐặt watermark theo đường chéo để bao phủ tốt hơn.
Horizontal AlignmentHorizontalAlignment.CenterĐặt watermark theo chiều ngang.
Vertical AlignmentVerticalAlignment.CenterĐặt watermark theo chiều dọc.

Phủ sóng tự động cho các trang tính

Một lời gọi duy nhất tới watermarker.add(watermark) sẽ truyền watermark tới mọi trang tính, giúp bạn tránh việc viết các vòng lặp lặp lại.

Simple Save Options

ExcelSaveOptions cho phép bạn giữ nguyên định dạng tệp gốc hoặc nâng cấp lên phiên bản XLSX mới nhất, và bạn cũng có thể chỉ định xem có nên giữ macro hay không.

Tất cả các khả năng này được mô tả chi tiết trong tài liệu chính thức.

Kết luận

Trong hướng dẫn này bạn đã học cách chèn Watermark vào Excel trong Java bằng các tính năng mạnh mẽ của Conholdate.Total for Java. Bằng cách làm theo hướng dẫn từng bước, bạn có thể bảo vệ các bảng tính của mình bằng văn bản tùy chỉnh, kiểm soát giao diện và xử lý các tệp lớn một cách hiệu quả. Đối với triển khai sản xuất, bạn sẽ cần một phiên bản có giấy phép; khám phá giá cả trên trang giá và nhận giấy phép tạm thời từ trang giấy phép tạm thời để đánh giá SDK.

Câu hỏi thường gặp

  • Làm thế nào để tôi thêm một watermark hình ảnh thay vì văn bản?
    Sử dụng lớp ImageWatermark, đặt độ trong suốt và căn chỉnh, và thêm nó vào thể hiện Watermarker giống như ví dụ văn bản. Hình ảnh có thể là PNG, JPEG, hoặc BMP, và bạn cũng có thể thu phóng nó để phù hợp với bảng tính. Xem tài liệu API để biết chi tiết.

  • Liệu watermark có hiển thị sau khi chuyển đổi workbook sang PDF?
    Có. Watermark được nhúng trong workbook và sẽ xuất hiện trong bất kỳ định dạng nào bạn chuyển đổi sau này, chẳng hạn như PDF, khi sử dụng Conholdate.Total for Java. Quá trình chuyển đổi giữ lại tất cả các yếu tố trực quan, bao gồm cả watermark.

  • Tôi có thể kiểm soát watermark trên từng worksheet không?
    SDK áp dụng watermark cho tất cả các worksheet theo mặc định, nhưng bạn có thể tải các worksheet riêng lẻ bằng cách sử dụng watermarker.getWorksheets().get_Item(index) và gọi add trên từng worksheet một cách chọn lọc. Điều này cung cấp cho bạn khả năng kiểm soát chi tiết cho các báo cáo cần thương hiệu khác nhau cho mỗi sheet.

  • Tôi có cần giấy phép cho việc phát triển và thử nghiệm không?
    Giấy phép tạm thời có sẵn để đánh giá tại temporary license page. Đối với việc sử dụng thương mại, mua giấy phép đầy đủ qua pricing page. Tệp giấy phép phải được tải lên thời gian chạy như được mô tả trong phần Setup.

Đọc thêm