การฝังลายน้ำในสเปรดชีตช่วยปกป้องข้อมูลที่ละเอียดอ่อนและบ่งบอกความเป็นเจ้าของเอกสาร. Conholdate.Total for Java มี API ที่ใช้งานง่ายซึ่งทำให้คุณสามารถแทรกลายน้ำใน Excel ด้วย Java ได้ด้วยเพียงไม่กี่บรรทัดของโค้ด. คู่มือนี้จะพาคุณผ่านการตั้งค่าที่จำเป็น การดำเนินการเต็มรูปแบบ และตัวเลือกการกำหนดค่าที่สำคัญ เพื่อให้คุณสามารถปกป้องเวิร์กบุ๊ก Excel ของคุณได้อย่างมีประสิทธิภาพ.

วิธีแทรกลายน้ำใน Excel ด้วย Java - ขั้นตอนโดยละเอียด

โหลด Workbook ด้วย ExcelLoadOptions

  1. โหลดไฟล์ Excel workbook: ใช้ Watermarker ร่วมกับ ExcelLoadOptions เพื่อเปิดไฟล์.
Watermarker watermarker = new Watermarker(inputPath, new ExcelLoadOptions());

คลาส Watermarker ได้รับการอธิบายใน API reference. การโหลดด้วย ExcelLoadOptions ให้คุณควบคุมการใช้หน่วยความจำ ซึ่งสำคัญสำหรับ workbook ขนาดใหญ่.

สร้างลายน้ำข้อความพร้อมการจัดรูปแบบ

  1. สร้างลายน้ำข้อความ: กำหนดแบบอักษร, สี, ความทึบ, การหมุน, และการจัดแนว.
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 องศาจะทำให้ลายน้ำวางเป็นแนวทแยงบนแผ่นงาน. คุณสามารถปรับค่าต่าง ๆ เหล่านี้ให้สอดคล้องกับแนวทางการสร้างแบรนด์หรือข้อกำหนดการปฏิบัติตามได้.

ใช้ลายน้ำกับทุกแผ่นงาน

  1. เพิ่มลายน้ำลงในสมุดงาน: วิธี add จะนำไปใช้กับทุกแผ่นงานในการเรียกครั้งเดียว.
watermarker.add(watermark);

หากคุณต้องการควบคุมแยกตามแผ่นงาน คุณสามารถดึงแผ่นงานแต่ละแผ่นผ่าน watermarker.getWorksheets() และเรียก add สำหรับแต่ละแผ่นงานแยกกันได้.

บันทึกสมุดงานที่มีลายน้ำ

  1. บันทึกสมุดงานที่มีลายน้ำ: เลือก ExcelSaveOptions เพื่อควบคุมรูปแบบผลลัพธ์และรักษาเมตาดาต้าต้นฉบับ.
watermarker.save(outputPath, new ExcelSaveOptions());

อ็อบเจ็กต์ ExcelSaveOptions ให้คุณระบุว่าจะเก็บเวอร์ชันไฟล์ต้นฉบับหรืออัปเกรดเป็นมาตรฐาน XLSX ล่าสุด.

Release Resources to Avoid Memory Leaks

  1. Close the Watermarker: Release resources to avoid memory leaks, especially when processing many files in a batch.
watermarker.close();

Closing the Watermarker also flushes any pending write operations, ensuring the output file is not corrupted.

ขั้นตอนเหล่านี้แสดงวิธีแทรกลายน้ำใน 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 Repository และ Dependency

เพิ่ม Conholdate Maven repository และ SDK dependency ไปยังไฟล์ 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) ซึ่งจะลดการใช้หน่วยความจำอย่างมาก.

ตัวเลือกการจัดรูปแบบลายน้ำขั้นสูง

คุณสามารถควบคุมแบบอักษร, ขนาด, สี, ความทึบ, มุมการหมุน และการจัดตำแหน่งได้ ตารางด้านล่างสรุปคุณสมบัติที่มักปรับเปลี่ยนบ่อยที่สุด:

คุณสมบัติค่าตัวอย่างผลกระทบ
Fontnew Font("Arial", 36)กำหนดสไตล์การแสดงผลของข้อความลายน้ำ
ColorColor.REDตั้งค่าสีของลายน้ำ; ยอมรับค่า RGB ใดก็ได้
Opacity0.3 (30%)ควบคุมความโปร่งแสง; ค่าที่ต่ำกว่าจะทำให้ลายน้ำรบกวนน้อยลง
Rotation Angle45 degreesวางลายน้ำเป็นแนวทแยงเพื่อให้ครอบคลุมได้ดียิ่งขึ้น
Horizontal AlignmentHorizontalAlignment.Centerวางลายน้ำในแนวนอน
Vertical AlignmentVerticalAlignment.Centerวางลายน้ำในแนวตั้ง

Automatic Worksheet Coverage

การเรียกใช้เพียงครั้งเดียว 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.

อ่านเพิ่มเติม