Vytvořit náhled tabulky v Javě pomocí GroupDocs.Parser
Pokud hledáte vytvořit náhled tabulky Java programy, jste na správném místě. V tomto průvodci si ukážeme, jak generovat vysoce kvalitní PNG náhledy z sešitů .xlsx pomocí GroupDocs.Parser pro Javu — ideální pro rychlé náhledy, sdílení snímků nebo vytvoření funkce náhledu dokumentu ve vaší aplikaci. Řešení funguje bez instalace Microsoft Office a škáluje na velké sešity při nízké spotřebě paměti.
Rychlé odpovědi
- Co znamená „preview Excel“? Generování souborů obrázků (např. PNG), které představují každou stránku listu.
- Jaký formát je doporučen? PNG poskytuje bezztrátovou kvalitu a dobře se hodí pro webové náhledy.
- Potřebuji licenci? Bezplatná zkušební verze funguje pro vývoj; pro produkci je vyžadována komerční licence.
- Mohu změnit rozlišení obrázku? Ano — upravte DPI v
PreviewOptions. - Je možné náhlednout jiné formáty? GroupDocs.Parser také podporuje PDF, Word a mnoho typů obrázků.
Co je „jak náhlednout Excel“ s GroupDocs.Parser?
Načtěte svůj Excel sešit a vykreslete každý list jako PNG obrázek, aniž byste potřebovali Microsoft Office. GroupDocs.Parser streamuje stránky po jedné, vytváří bezztrátové náhledy, které lze uložit na disk nebo vrátit přes HTTP, což je ideální pro webové náhledové služby.
GroupDocs.Parser čte Excel sešity, vykresluje každý list jako vizuální stránku a umožňuje streamovat tyto stránky do souborů obrázků. Tím se eliminuje potřeba Office interop nebo konvertorů třetích stran.
Proč použít GroupDocs.Parser pro náhledy Excelu?
Měli byste použít GroupDocs.Parser, protože funguje na jakémkoli Java serveru, nevyžaduje instalaci Office, zvládá velké sešity s nízkou spotřebou paměti a vytváří bezztrátové PNG obrázky s konfigurovatelným DPI. SDK podporuje více než 100 vstupních a výstupních formátů, dokáže zpracovat 200‑stránkový sešit za méně než 3 sekundy a udržuje spotřebu paměti pod 50 MB na list.
- Nevyžaduje instalaci Office – běží na jakémkoli server‑side Java prostředí.
- Podporuje velké soubory – streamuje stránky po jedné, udržuje nízkou spotřebu paměti.
- Výstup vysoké kvality – kontrola nad DPI, formátem a možnostmi renderování.
- Flexibilita napříč formáty – stejné API funguje pro PDF, Word dokumenty a další.
Předpoklady
- Java Development Kit (8 +).
- IDE jako IntelliJ IDEA nebo Eclipse.
- GroupDocs.Parser for Java SDK – stáhněte z zde.
- Dokumentace – viz oficiální dokumentace.
- Ukázkový Excel soubor (
.xlsx), který chcete náhlednout. - Maven nebo Gradle (volitelné) pro správu závislostí.
Importovat balíčky
Tyto importy vám poskytují přístup k parseru, možnostem náhledu a utilitám pro práci se streamy.
import com.groupdocs.parser.Parser;
import com.groupdocs.parser.options.PreviewOptions;
import com.groupdocs.parser.options.PreviewFormats;
import com.groupdocs.parser.options.ICreatePageStream;
import com.groupdocs.parser.options.IPreviewPageRender;
import com.groupdocs.parser.results.PageRenderInfo;
import java.io.FileOutputStream;
import java.io.OutputStream;
import java.io.IOException;
Průvodce krok za krokem pro generování náhledů stránek tabulky
Krok 1: Inicializace instance parseru
Parser je jádrová třída GroupDocs.Parser, která poskytuje čtení souborů tabulek a umožňuje stránkované renderování.
Vytvořte objekt Parser ukazující na váš Excel sešit. Blok try‑with‑resources zajistí automatické uzavření parseru.
try (Parser parser = new Parser("path/to/your/sample.xlsx")) {
// Your subsequent code will go here
}
Tip: Použijte absolutní cestu nebo nakonfigurujte složku zdrojů, aby se předešlo
FileNotFoundException.
Krok 2: Připravte možnosti náhledu
PreviewOptions konfiguruje parametry renderování, jako je výstupní formát a DPI.ICreatePageStream je rozhraní zpětného volání, které poskytuje výstupní stream pro každou vygenerovanou stránku. Definujte, jak bude každá stránka uložena. Implementace ICreatePageStream vrací nový FileOutputStream pro každý list.
PreviewOptions previewOptions = new PreviewOptions(new ICreatePageStream() {
@Override
public OutputStream createPageStream(int pageNumber) {
try {
String outputPath = getOutputPath(pageNumber); // define this method later
return new FileOutputStream(outputPath);
} catch (IOException ex) {
throw new RuntimeException("Error creating output stream", ex);
}
}
});
Tento krok je místem, kde převádíte xlsx na png — stream zapisuje PNG data na disk.
Krok 3: Připojte delegáta pro zachycení informací o renderování
Pokud potřebujete podrobnosti o každém vykresleném listu (např. rozměry, název listu), zaregistrujte zpětné volání.
final PageRenderInfo[] renderInfoHolder = {null}; // to store info
previewOptions.setPreviewPageRender(new IPreviewPageRender() {
@Override
public void previewPageRender(PageRenderInfo pageRenderInfo) {
renderInfoHolder[0] = pageRenderInfo;
}
});
Krok 4: Zadejte výstupní formát a DPI
Vyberte PNG jako formát obrázku a nastavte DPI, které vyvažuje kvalitu a velikost souboru.
previewOptions.setPreviewFormat(PreviewFormats.Png); // PNG images
previewOptions.setDpi(150); // Higher DPI for better clarity
Upravit DPI, pokud potřebujete menší náhledy (např. 96) nebo tisk ve vysokém rozlišení (např. 300).
Krok 5: Generujte náhledy
Po nastavení všeho zavolejte generatePreview. SDK projde každý list a zavolá poskytnutý stream.
parser.generatePreview(previewOptions);
Krok 6: Definujte pomocnou metodu getOutputPath()
getOutputPath() vytvoří název souboru na základě čísla stránky (listu) a vrátí úplnou cestu k výstupnímu obrázku. Klidně si přizpůsobte strukturu složek.
private static String getOutputPath(int pageNumber) {
return "output/preview_page_" + pageNumber + ".png"; // Custom path
}
Častý úskalí: Zapomenutí vytvořit předem adresář
outputzpůsobíIOException. Vytvořte jej programově nebo se ujistěte, že existuje.
Kompletní funkční příklad (zjednodušený)
Níže je kompaktní verze, která spojuje všechny části dohromady. Ukazuje workflow vytvořit náhled tabulky Java od začátku do konce.
try (Parser parser = new Parser("path/to/your/sample.xlsx")) {
final PageRenderInfo[] renderInfoHolder = {null};
PreviewOptions options = new PreviewOptions(new ICreatePageStream() {
@Override
public OutputStream createPageStream(int pageNumber) {
try {
return new FileOutputStream(getOutputPath(pageNumber));
} catch (IOException e) {
throw new RuntimeException(e);
}
}
});
options.setPreviewPageRender(pageRenderInfo -> {
renderInfoHolder[0] = pageRenderInfo;
});
options.setPreviewFormat(PreviewFormats.Png);
options.setDpi(150);
parser.generatePreview(options);
} catch (Exception e) {
e.printStackTrace();
}
Spusťte tento úryvek a najdete sérii souborů preview_page_1.png, preview_page_2.png, … ve složce output — každý představuje list z původního Excel sešitu.
Časté problémy a řešení
| Problém | Příčina | Řešení |
|---|---|---|
| Žádné obrázky nebyly vygenerovány | getOutputPath vrací neplatný adresář | Zajistěte, aby cílová složka existovala, nebo ji vytvořte pomocí new File("output").mkdirs(); |
| Chyba nedostatku paměti u velkých souborů | Načítání celého sešitu najednou | Použijte streamovací přístup (jak je ukázáno) a zpracovávejte stránky po jedné |
| Nesprávné DPI | setDpi nebylo zavoláno nebo je nastaveno na výchozí (96) | Zavolejte previewOptions.setDpi(vámiPožadovanáHodnota); před generatePreview |
| Nepodporovaný formát | Pokus o náhled poškozeného .xlsx | Ověřte soubor v Excelu nebo použijte Parser.isSupported před zpracováním |
Často kladené otázky
Q: Mohu generovat náhledy pro PDF a obrázky pomocí GroupDocs.Parser?
A: Ano, stejné API funguje pro PDF, Word dokumenty a mnoho formátů obrázků.
Q: Jak změním výstupní formát obrázku?
A: Zavolejte previewOptions.setPreviewFormat(PreviewFormats.Jpeg) (nebo Gif, Bmp atd.).
Q: Je výkon problém u velmi velkých sešitů?
A: SDK streamuje stránky, což udržuje nízkou spotřebu paměti. U masivních souborů zvažte zpracování ve paralelních dávkách.
Q: Jak mohu ošetřit chyby během generování náhledů?
A: Zabalte kód do bloků try‑catch (jak je ukázáno) a zaznamenejte podrobnosti výjimky. Ujistěte se, že streamy jsou uzavřeny v bloku finally, pokud nepoužíváte try‑with‑resources.
Q: Vyžaduje knihovna instalaci Microsoft Office?
A: Ne. GroupDocs.Parser je čistě Java řešení a funguje na jakékoli platformě, která podporuje Java 8+.
Poslední aktualizace: 2026-07-16
Testováno s: GroupDocs.Parser 23.11 (nejnovější v době psaní)
Autor: GroupDocs