Umieszczenie znaku wodnego w arkuszu kalkulacyjnym pomaga chronić wrażliwe dane i sygnalizuje własność dokumentu. Conholdate.Total for Java zapewnia prosty interfejs API, który pozwala wstawić znak wodny w Excelu w Javie przy użyciu zaledwie kilku linii kodu. Ten przewodnik przeprowadzi Cię przez niezbędną konfigurację, pełną implementację oraz kluczowe opcje konfiguracyjne, abyś mógł skutecznie zabezpieczyć swoje skoroszyty Excel.
Jak wstawić znak wodny w Excelu w Javie - krok po kroku
Załaduj skoroszyt przy użyciu ExcelLoadOptions
- Załaduj skoroszyt Excel: Użyj
Watermarkerrazem zExcelLoadOptions, aby otworzyć plik.
Watermarker watermarker = new Watermarker(inputPath, new ExcelLoadOptions());
Klasa Watermarker jest udokumentowana w odniesieniu API. Ładowanie przy użyciu ExcelLoadOptions daje kontrolę nad zużyciem pamięci, co jest niezbędne przy dużych skoroszytach.
Utwórz znak wodny tekstowy ze stylizacją
- Utwórz znak wodny tekstowy: Zdefiniuj czcionkę, kolor, przezroczystość, obrót i wyrównanie.
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);
Ustawienie opacity na 0,3 sprawia, że znak wodny jest półprzezroczysty, a obrót o 45 stopni umieszcza go ukośnie na arkuszu. Możesz dostosować te wartości, aby spełniały wytyczne brandingowe lub wymogi zgodności.
Zastosuj znak wodny do wszystkich arkuszy
- Dodaj znak wodny do skoroszytu: Metoda
addstosuje go do każdego arkusza w jednym wywołaniu.
watermarker.add(watermark);
Jeśli potrzebujesz kontroli na poziomie poszczególnych arkuszy, możesz pobrać indywidualne arkusze za pomocą watermarker.getWorksheets() i wywołać add na każdym z nich osobno.
Zapisz skoroszyt z znakiem wodnym
- Zapisz skoroszyt z znakiem wodnym: Wybierz
ExcelSaveOptions, aby kontrolować format wyjściowy i zachować oryginalne metadane.
watermarker.save(outputPath, new ExcelSaveOptions());
Obiekt ExcelSaveOptions pozwala określić, czy zachować oryginalną wersję pliku, czy zaktualizować do najnowszego standardu XLSX standard.
Zwolnij zasoby, aby uniknąć wycieków pamięci
- Zamknij Watermarker: Zwolnij zasoby, aby uniknąć wycieków pamięci, szczególnie przy przetwarzaniu wielu plików w partii.
watermarker.close();
Zamknięcie Watermarker również opróżnia wszystkie oczekujące operacje zapisu, zapewniając, że plik wyjściowy nie zostanie uszkodzony.
Te kroki ilustrują, jak wstawić znak wodny w Excelu w Javie, dając jednocześnie kontrolę nad wyglądem i wydajnością.
Pełny przykład kodu: Wstawianie znaku wodnego w Excelu w Javie – Pełny znak wodny w Javie
Poniższy kod demonstruje cały proces, od wczytania skoroszytu po zapisanie wyniku.
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();
}
}
}
}
Uwaga: Ten przykład kodu demonstruje podstawową funkcjonalność. Przed użyciem w swoim projekcie upewnij się, że zaktualizowałeś ścieżki do plików (
input.xlsx,output_watermarked.xlsx), aby odpowiadały rzeczywistym lokalizacjom, sprawdź, czy wszystkie wymagane zależności są poprawnie zainstalowane, i dokładnie przetestuj w środowisku deweloperskim. Jeśli napotkasz jakiekolwiek problemy, odwołaj się do oficjalnej dokumentacji lub skontaktuj się z zespołem wsparcia w celu uzyskania pomocy.
Przygotowanie środowiska
Dodaj repozytorium Maven i zależność
Dodaj repozytorium Maven Conholdate oraz zależność SDK do swojego 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>
Możesz również pobrać najnowsze pliki JAR bezpośrednio ze strona pobierania. SDK wymaga Java 8 lub nowszej, a kompatybilne IDE, takie jak IntelliJ IDEA lub Eclipse, ułatwi debugowanie.
Konfiguracja licencjonowania (użycie produkcyjne)
Przed uruchomieniem kodu znakowania wodnego w środowisku produkcyjnym, zastosuj swój plik licencyjny:
import com.groupdocs.watermark.License;
License license = new License();
license.setLicense("path/to/Conholdate.Total.Java.lic");
Tymczasowa licencja jest dostępna do oceny na stronie tymczasowej licencji. Dla długoterminowych projektów zapoznaj się ze stroną cenową, aby wybrać odpowiedni plan.
Co sprawia, że Conholdate.Total for Java jest odpowiedni do znakowania w Excelu
Kompleksowe wsparcie XLS/XLSX
Biblioteka obsługuje zarówno starsze formaty XLS jak i nowoczesne formaty XLSX bez konieczności konwersji, zachowując formuły, wykresy i makra.
Efektywny tryb strumieniowania dla dużych skoroszytów
Podczas pracy z skoroszytami zawierającymi tysiące wierszy, włącz strumieniowanie, ustawiając loadOptions.setLoadAllWorksheets(false). To znacząco zmniejsza zużycie pamięci.
Zaawansowane opcje stylizacji znaków wodnych
Możesz kontrolować rodzinę czcionki, rozmiar, kolor, przezroczystość, kąt obrotu i wyrównanie. Poniższa tabela podsumowuje najczęściej modyfikowane właściwości:
| Właściwość | Przykładowa wartość | Wpływ |
|---|---|---|
| Font | new Font("Arial", 36) | Określa wizualny styl tekstu znaku wodnego. |
| Color | Color.RED | Ustawia kolor znaku wodnego; akceptowana jest dowolna wartość RGB. |
| Opacity | 0.3 (30%) | Kontroluje przezroczystość; niższe wartości sprawiają, że znak wodny jest mniej nachalny. |
| Rotation Angle | 45 degrees | Ustawia znak wodny pod kątem ukośnym dla lepszego pokrycia. |
| Horizontal Alignment | HorizontalAlignment.Center | Umieszcza znak wodny poziomo. |
| Vertical Alignment | VerticalAlignment.Center | Umieszcza znak wodny pionowo. |
Automatyczne pokrycie arkuszy
Jedno wywołanie watermarker.add(watermark) propaguje znak wodny do każdego arkusza, oszczędzając Ci pisania powtarzalnych pętli.
Simple Save Options
ExcelSaveOptions pozwala zachować oryginalny format pliku lub zaktualizować do najnowszej wersji XLSX, a także możesz określić, czy zachować makra.
Wszystkie te możliwości są opisane szczegółowo w oficjalnej dokumentacji.
Podsumowanie
W tym samouczku dowiedziałeś się, jak wstawić znak wodny w Excelu w Javie, korzystając z potężnych funkcji Conholdate.Total for Java. Postępując zgodnie z przewodnikiem krok po kroku, możesz chronić swoje arkusze kalkulacyjne własnym tekstem, kontrolować wygląd i efektywnie obsługiwać duże pliki. Do wdrożeń produkcyjnych potrzebna będzie licencjonowana wersja; zapoznaj się z cennikiem na stronie cennika i uzyskaj tymczasową licencję ze strony tymczasowej licencji aby ocenić SDK.
FAQ
Jak dodać znak wodny w postaci obrazu zamiast tekstu?
Użyj klasyImageWatermark, ustaw jej przezroczystość i wyrównanie, a następnie dodaj ją do instancjiWatermarker, tak jak w przykładzie z tekstem. Obraz może być w formacie PNG, JPEG, lub BMP, a także możesz go skalować, aby dopasować do arkusza. Zobacz referencję API po więcej szczegółów.Czy znak wodny będzie widoczny po konwersji skoroszytu do PDF?
Tak. Znak wodny jest osadzony w skoroszycie i pojawi się w każdym formacie, do którego później konwertujesz, takim jak PDF, przy użyciu Conholdate.Total for Java. Proces konwersji zachowuje wszystkie elementy wizualne, w tym znaki wodne.Czy mogę kontrolować znak wodny na poziomie poszczególnych arkuszy?
SDK domyślnie nakłada znak wodny na wszystkie arkusze, ale możesz załadować poszczególne arkusze przy użyciuwatermarker.getWorksheets().get_Item(index)i wywołaćaddna każdym z nich selektywnie. Daje to precyzyjną kontrolę w raportach, które wymagają innego brandingu w zależności od arkusza.Czy potrzebuję licencji do rozwoju i testowania?
Tymczasowa licencja jest dostępna do oceny na stronie tymczasowej licencji. Do użytku komercyjnego należy zakupić pełną licencję poprzez stronę cenową. Plik licencji musi być załadowany w czasie wykonywania, jak pokazano w sekcji Setup.
