Generowanie wizualnych podglądów danych arkuszy kalkulacyjnych jest częstym wymogiem przy tworzeniu pulpitów raportowych lub podsumowań e‑mailowych. Conholdate.Total for Java zapewnia solidny SDK, który upraszcza proces konwertowania Excela na obraz w aplikacjach Java. W tym przewodniku zobaczysz, jak załadować XLSX skoroszyt, skonfigurować wyjście PNG i wygenerować pliki obrazów dla całych arkuszy, wykresów lub określonych zakresów. Po zakończeniu będziesz mieć gotowy do uruchomienia przykład kodu, który możesz dostosować do własnych projektów.
Czego wymaga konwersja plików Excel na obrazy w Twojej aplikacji
Programiści często muszą przekształcać zawartość arkuszy kalkulacyjnych w statyczne obrazy do podglądów w sieci, raportów w formacie PDF lub miniatur mobilnych. Wymaganie zazwyczaj obejmuje zachowanie formatowania komórek, renderowanie osadzonych wykresów oraz opcjonalne ograniczenie konwersji do jednego zakresu. Ręczne wykonywanie tych zadań poprzez otwieranie Excela, robienie zrzutów ekranu i zapisywanie ich nie skaluje się i może prowadzić do niespójnych wyników.
Techniczne ograniczenia dla niezawodnego rozwiązania to: obsługa plików XLSX, możliwość wstawiania wykresów i formuł, konfigurowalna rozdzielczość obrazu oraz przetwarzanie wsadowe wielu arkuszy. Konwersja musi działać na serwerze lub w środowisku desktopowym bez wymogu posiadania Microsoft Office.
Wybór Conholdate.Total for Java do zadania
Conholdate.Total for Java oferuje jednolite API, które obejmuje wszystkie potrzebne możliwości. Jego ExcelLoadOptions pozwalają ładować wykresy i formuły, natomiast ImageConvertOptions zapewniają precyzyjną kontrolę nad formatem, jakością i wymiarami. SDK działa na dowolnym środowisku Java, wymaga tylko zależności Maven i efektywnie obsługuje duże skoroszyty.
Po szczegółowym użyciu API zobacz oficjalną dokumentację. Pełna referencja dla klas takich jak Conversion, ExcelLoadOptions i ImageConvertOptions jest dostępna w referencji API. Najnowszą bibliotekę możesz pobrać ze strony wydania.
Implementacja konwersji Excel na obraz w Javie
Proces konwersji można podzielić na kilka wyraźnych kroków. Poniższe sekcje przeprowadzą Cię przez każdy element, z krótkimi fragmentami kodu pobranymi bezpośrednio z pełnego przykładu.
Zainstaluj Conholdate.Total dla Javy przy użyciu Maven
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>
Załaduj plik Excel z obsługą wykresów i formuł
Utwórz instancję ExcelLoadOptions, włącz ładowanie wykresów i formuł oraz zainicjalizuj obiekt Conversion przy użyciu strumienia pliku:
ExcelLoadOptions loadOptions = new ExcelLoadOptions();
loadOptions.setLoadCharts(true);
loadOptions.setLoadFormulas(true);
Conversion conversion = new Conversion(new FileInputStream("input.xlsx"), loadOptions);
Skonfiguruj opcje wyjścia obrazu dla PNG
Ustaw żądany format obrazu, jakość i wymiary. Szerokość jest stała, podczas gdy wysokość zachowuje proporcje:
ImageConvertOptions imgOptions = new ImageConvertOptions();
imgOptions.setFormat(ImageConvertOptions.ImageFormat.PNG);
imgOptions.setQuality(90);
imgOptions.setWidth(1200);
imgOptions.setHeight(0); // preserve aspect ratio
Konwertuj każdy arkusz lub zakres na obrazy PNG
Iteruj po stronach skoroszytu (arkuszach) i konwertuj każdą z nich. Możesz także wybrać konkretny zakres, dostosowując pageNumber lub używając dodatkowych opcji ładowania:
int pageCount = conversion.getPageCount();
for (int i = 1; i <= pageCount; i++) {
imgOptions.setPageNumber(i);
String outputPath = "output_images/sheet_" + i + ".png";
conversion.convert(outputPath, imgOptions);
}
Sprawdź wynik i obsłuż wyjątki
Umieść logikę konwersji w bloku try‑catch i upewnij się, że katalog wyjściowy istnieje przed rozpoczęciem:
try {
Files.createDirectories(Paths.get("output_images"));
// conversion code here
System.out.println("Excel to image conversion completed successfully.");
} catch (Exception ex) {
System.err.println("Conversion failed: " + ex.getMessage());
ex.printStackTrace();
}
Powyższe kroki pokazują, jak przekształcić Excel na obraz przy użyciu Conholdate.Total SDK, zapewniając jednocześnie elastyczność w obsłudze wykresów, zakresów i pełnych arkuszy.
Pełny przykład kodu: konwersja Excela na obraz z obsługą całego arkusza
Poniższy kod przedstawia kompletną, gotową do uruchomienia implementację opisaną w powyższych krokach.
import java.io.FileInputStream;
import java.nio.file.Files;
import java.nio.file.Paths;
import com.groupdocs.conversion.Conversion;
import com.groupdocs.conversion.options.load.ExcelLoadOptions;
import com.groupdocs.conversion.options.convert.ImageConvertOptions;
import com.groupdocs.conversion.options.convert.ImageConvertOptions.ImageFormat;
public class ExcelToImageConverter {
public static void main(String[] args) {
String inputFile = "input.xlsx";
String outputFolder = "output_images";
try {
// Create output directory if it does not exist
Files.createDirectories(Paths.get(outputFolder));
// Load options: include charts and formulas during conversion
ExcelLoadOptions loadOptions = new ExcelLoadOptions();
loadOptions.setLoadCharts(true);
loadOptions.setLoadFormulas(true);
// Initialize conversion with the Excel file and load options
try (Conversion conversion = new Conversion(new FileInputStream(inputFile), loadOptions)) {
// Determine how many pages (sheets) the workbook has
int pageCount = conversion.getPageCount();
// Configure image output options
ImageConvertOptions imgOptions = new ImageConvertOptions();
imgOptions.setFormat(ImageFormat.PNG); // Output format
imgOptions.setQuality(90); // Quality (relevant for JPEG)
imgOptions.setWidth(1200); // Desired width, height will keep aspect ratio
imgOptions.setHeight(0); // 0 means preserve original aspect ratio
// Convert each sheet to a separate image file
for (int i = 1; i <= pageCount; i++) {
imgOptions.setPageNumber(i);
String outputPath = outputFolder + "/sheet_" + i + ".png";
conversion.convert(outputPath, imgOptions);
}
}
System.out.println("Excel to image conversion completed successfully.");
} catch (Exception ex) {
System.err.println("Conversion failed: " + ex.getMessage());
ex.printStackTrace();
}
}
}
Uwaga: Ten przykład kodu demonstruje podstawową funkcjonalność. Przed użyciem go w swoim projekcie upewnij się, że zaktualizowałeś ścieżki plików (
input.xlsx,output_images), aby odpowiadały rzeczywistym lokalizacjom, sprawdź, czy wszystkie wymagane zależności są prawidłowo zainstalowane, oraz dokładnie przetestuj w środowisku programistycznym. Jeśli napotkasz jakiekolwiek problemy, odwołaj się do oficjalnej dokumentacji lub skontaktuj się z zespołem wsparcia w celu uzyskania pomocy.
Wnioski
Konwertowanie Excela na obraz w Javie staje się proste, gdy wykorzystujesz Conholdate.Total for Java. SDK obsługuje renderowanie wykresów, ocenę formuł oraz generowanie wysokiej jakości plików PNG przy minimalnej ilości kodu. Postępując zgodnie z przewodnikiem krok po kroku, możesz zintegrować tę funkcję z narzędziami raportującymi, generatorami e‑maili lub dowolną aplikacją, która potrzebuje wizualnych reprezentacji arkuszy kalkulacyjnych. Pamiętaj, że wdrożenia produkcyjne wymagają licencji komercyjnej; możesz zapoznać się z opcjami cenowymi na stronie Cennik Conholdate.Total oraz uzyskać tymczasową licencję z strony tymczasowej licencji podczas oceny.
Najczęściej zadawane pytania
Jak mogę przekonwertować Excel na obraz w Javie?
Użyj klasyConversionz Conholdate.Total for Java, skonfigurujExcelLoadOptionsiImageConvertOptions, a następnie wywołajconvertdla każdego arkusza.Czy mogę przekonwertować wykres Excel na obraz?
Tak. Włącz ładowanie wykresów za pomocąloadOptions.setLoadCharts(true)i określ numer strony wykresu przy ustawianiuimgOptions.setPageNumber.Czy można konwertować tylko określony zakres komórek?
Możesz zdefiniować zakres w opcjach ładowania lub wybrać odpowiedni numer strony, który odpowiada żądanemu zakresowi przed konwersją.Jakie licencjonowanie jest wymagane do użytku produkcyjnego?
Wymagana jest licencja komercyjna. Przejrzyj koszty na stronie cennik Conholdate.Total i uzyskaj tymczasową licencję ze strony tymczasowej licencji.
