Už se mi několikrát stalo, že v zákaznických požadavcích na aplikaci byl i export tabulek do Excelu nebo naopak import dat z .xls souborů, proto bych chtěl napsat pár záznamů do blogu i na toto téma.
Existuje několik různých přístupů jak v Javě pracovat s dokumenty Excelu, každý má svá pro i proti. Zde je stručný přehled:
přístup | výhody | nevýhody |
JNI a Excel Automation (COM)
|
- jednoduše implementovatelné
- "úplná" funkcionalita (v rámci toho co Excel nabízí přes komponentový model)
- nehrozí nekompatibilita (když nepočítám některé nekompatibility mezi jednotlivými verzemi Excelu)
|
- musí být nainstalovaný Excel
- přicházíme o platformní nezávislost (JNI)
- většina řešení pouze pro windows
|
Java DCOM + Excel Automation
|
- nehrozí nekompatibilita (když nepočítám některé nekompatibility mezi jednotlivými verzemi Excelu)
- nevyužívá JNI
|
- musí být povolen DCOM přístup na počítač s nainstalovaným Excelem
- větší časová náročnost (síťová komunikace)
- nezanedbatelné nároky na správu sítě (povolení DCOM přístupu, sdílení souborů mezi serverem a klientem, ...)
|
Nástroje třetích stran (např. OpenOffice.org SDK)
|
- vysoká kompatibilita s Excelem
- velká funkcionalita (např. podpora mnoha dalších formátů)
|
- musí být nainstalovaný dodatečný software
- může záviset na JNI
- slabši podpora některých funkcí (makra apod.)
|
Excel JDBC driver
|
- přístup k datům přes jednoduché rozhraní (JDBC)
- čistá Java
|
- velmi omezená funkcionalita
|
Java knihovny pro práci s XLS soubory
|
- čistá Java
- nezávisí na externím software
- (často) zdrojové kódy k dispozici
tento přístup používám nejčastěji a nejraději
|
- většinou jen základní funkcionalita
- může nastat problém s komplikovanějšími soubory
|
Na jednotlivé přístupy se blíže podíváme v příštích dílech tohoto seriálu
Komentáře