Programovanie

Čítanie a písanie tabuliek programu Excel

Komunita otvorených zdrojov vytvorila veľa otvorených zdrojov Java projektov, ktoré siahajú od grafického softvéru cez herné rámce až po textové procesory. V tomto príspevku predstavujem projekt knižnice otvoreného zdroja na čítanie a zápis tabuliek programu Microsoft Excel.

Odporúčanie knižnice tabuliek

Otázka: Bol som požiadaný o rozšírenie tabuľkového softvéru založeného na spoločnosti Java pre čítanie a zápis tabuliek programu Excel. Môžete mi odporučiť otvorenú knižnicu Java, ktorá mi s touto úlohou pomôže?

A: Možno budete chcieť vyskúšať JExcelAPI, čo je vyspelá otvorená knižnica založená na prostredí Java, ktorá vám umožňuje čítať, písať a upravovať tabuľky programu Excel. Tu je niekoľko z jeho mnohých funkcií:

  • Číta údaje zo zošitov Excel 95, 97, 2000, XP a 2003
  • Číta a zapisuje vzorce (iba Excel 97 a novšie)
  • Generuje tabuľky vo formáte Excel 2000
  • Podporuje formátovanie písma, čísla a dátumu
  • Podporuje tieňovanie buniek, ohraničenie buniek a vyfarbenie buniek
  • Upravuje existujúce pracovné listy
  • Podporuje kopírovanie grafov
  • Podporuje vkladanie a kopírovanie obrázkov do tabuliek

JExcelAPI vyvinul Andrew Kahn a bol vydaný pod GNU Lesser General Public License.

Sťahuje sa knižnica JExcelAPI

Otázka: Ako stiahnem JExcelAPI?

A: Stiahnite si JExcelAPI podľa nasledujúcich pokynov:

  1. Nasmerujte prehliadač na web SourceForge spoločnosti JExcelAPI.
  2. Kliknite na ikonu jexcelapi odkaz.
  3. Na výslednej stránke kliknite na jeden z odkazov na priečinky. Napríklad som klikol na 2.6.12 odkaz.
  4. Na výslednej stránke kliknite na názov súboru archívu distribúcie. Napríklad som klikol na jexcelapi_2_6_12.zip odkaz.
  5. Po krátkom oneskorení by vás prehliadač mal vyzvať na uloženie tohto súboru. Pokračujte a uložte súbor.

Po stiahnutí zrušte archiváciu tohto súboru. Mali by ste dodržiavať a jexcelapi domovský adresár v rámci a jexcelapi_2_6_12 adresár.

Ukážka knižnice JExcelAPI

Otázka: Obsahuje knižnica JExcelAPI nejaké ukážky?

A: JExcelAPI jexcelapi domovský adresár obsahuje a jxl.jar súbor, ktorý obsahuje ukážky na čítanie, zápis a kopírovanie tabuliek.

Čítaná ukážka načíta existujúcu tabuľku a prevedie ju na hodnoty oddelené čiarkou (CSV) alebo XML pomocou formátu -csv alebo -xml možnosť príkazového riadku. Zvážte nasledujúce príklady:

java -jar jxl.jar -csv budget.xls java -jar jxl.jar -xml budget.xls

Tieto príklady sa čítajú rozpočet.xls a výstup jeho obsahu vo formáte CSV a XML na štandardný výstup. Keď ani jeden -csv ani -xml je zadané, -csv sa predpokladá.

Ukážková ukážka zápisu vytvorí vzorovú tabuľku, ktorá obsahuje vzorce, ohraničenia, obrázky a ďalšie. Táto tabuľka sa generuje zadaním - napíš možnosť príkazového riadku, ako je uvedené nižšie:

java -jar jxl.jar -write sample.xls

Obrázok 1 zobrazuje časť výsledného vzorka.xls tabuľkový kalkulátor.

Obrázok 1. Na prístup k tabuľke sample.xls som použil program LibreOffice Calc

Ukážková ukážka kopíruje vzorovú tabuľku jxlrwtest.xls, ktorý je uložený v rovnakom adresári ako jxl.jar, do novej tabuľky. Vo výslednej tabuľke je prvý hárok (pôvodný) nezmenený, zatiaľ čo druhý hárok (upravený) obsahuje upravené hodnoty.

Táto ukážka je generovaná zadaním -rw možnosť príkazového riadku, za ktorou nasleduje jxlrwtest.xls a názov výstupnej tabuľky. Zvážte nasledujúci príkazový riadok:

java -jar jxl.jar -rw jxlrwtest.xls copy.xls

Tento príkazový riadok sa kopíruje jxlrwtest.xls do copy.xls. Obrázok 2 zobrazuje druhý (upravený) hárok v LibreOffice Calc.

Obrázok 2. Kliknutím na pôvodné a upravené karty zobrazíte pôvodné a upravené listy

Vrátane JExcelAPI na kompiláciu a vykonávanie

Otázka: Ako zahrniem JExcelAPI pri kompilácii zdrojového kódu a spustení aplikácie?

A: Ak chcete zahrnúť JExcelAPI do kompilácie zdrojového kódu a spustenia aplikácie, vykonajte jeden z nasledujúcich krokov:

  • Pridajte znak jexcelapi domovský adresár jxl.jar súbor do vášho CLASSPATH premenná prostredia.
  • Zahrnúť jxl.jar cez javac a java programu -cp možnosť príkazového riadku.

Programovanie pomocou JExcelAPI

Otázka: Ako môžem vytvoriť programy Java, ktoré využívajú JExcelAPI?

A: The jexcelapi domovský adresár obsahuje a tutorial.html súbor, ktorý predstavuje základný tutoriál o programovaní pomocou JExcelAPI. V tejto príručke sa dozviete, ako čítať, písať a kopírovať tabuľky. V príručke sa tiež diskutuje o formátovaní.

jexcelapi tiež zahŕňa a doc podadresár, ktorý poskytuje prístup k rozsiahlej dokumentácii API. Nasmerujte webový prehľadávač na tento adresár index.html súbor a môžete preskúmať typy v štyroch zdokumentovaných balíkoch tejto knižnice:

  • jxl: typy hlavného balíka
  • jxl.demo: typy pre rôzne ukážky
  • jxl.formát: typy súvisiace s formátovaním
  • jxl.písať: typy na zápis do tabuľky

Tento zoznam nie je vyčerpávajúci. Dodatočné balíčky ako napr jxl.read sú prítomné, ale nie sú zdokumentované. Ak sa chcete dozvedieť o ďalších balíkoch, vykonajte príkaz jar tvf jxl.jar a preskúmajte informácie o balíku vo výslednom zozname JAR.

Aby som vám pomohol začať s JExcelAPI, vytvoril som jednoduchý JExcelAPIDemo aplikácia, ktorá demonštruje vytvorenie novej tabuľky, ktorá je uložená v priečinku výstup.xls a potom prečítať a odoslať obsah tejto tabuľky. Pozrite sa na zoznam 1.

Zoznam 1. Písanie a čítanie jednoduchej tabuľky

import java.io.File; import java.io.IOException; import jxl.Cell; import jxl.Sheet; import jxl.Workbook; import jxl.read.biff.BiffException; import jxl.write.Label; import jxl.write.Number; import jxl.write.WritableSheet; import jxl.write.WritableWorkbook; import jxl.write.WriteException; verejná trieda JExcelAPIDemo {public static void main (String [] args) hodí BiffException, IOException, WriteException {WritableWorkbook wworkbook; wworkbook = Workbook.createWorkbook (nový súbor ("output.xls")); WritableSheet wsheet = wworkbook.createSheet ("Prvý hárok", 0); Štítok štítku = nový štítok (0, 2, „Záznam štítku“); wsheet.addCell (štítok); Number number = new Number (3, 4, 3.1459); wsheet.addCell (číslo); wworkbook.write (); wworkbook.close (); Workbook workbook = Workbook.getWorkbook (new File ("output.xls")); Hárok listu = workbook.getSheet (0); Bunka bunka1 = sheet.getCell (0, 2); System.out.println (cell1.getContents ()); Bunka bunka2 = sheet.getCell (3, 4); System.out.println (cell2.getContents ()); workbook.close (); }}

Výpisom 1 sa najskôr vytvorí zapisovateľný zošit vyvolaním jedného z nich Pracovný zošittovárenské metódy. Potom sa pre tento zošit vytvorí list, ktorý je možné zapísať, a potom sa ako hodnoty buniek v hárku pridá štítok a číslo. Potom je zošit napísaný a uzavretý.

Zoznam 1 pokračuje získaním spojeného zošita s výstup.xls a čítanie jeho obsahu. The getSheet () metóda poskytuje prístup k prvému hárku v tomto zošite. Jeho getCell () metóda sa volá na prístup k dvom bunkám, ktorých obsah sa potom odošle.

Za predpokladu, že jxl.jar sa nachádza v aktuálnom adresári, vykonajte nasledujúci príkaz na zostavenie záznamu č. 1:

javac -cp jxl.jar JExcelAPIDemo.java

Za predpokladu úspechu spustite nasledujúci príkaz JExcelAPIDemo:

java -cp jxl.jar ;. JExcelAPIDemo

Mali by ste dodržiavať nasledujúci výstup:

Štítkový záznam 3.146

Obrázok 3 vás ukazuje výstup.xls v kontexte LibreOffice.

Obrázok 3. Osamelý list zobrazuje dve hodnoty buniek

Čo bude ďalej?

Nabudúce predstavím množinu hlavolamov, ktoré sa zaoberajú vývojom knižníc Java. Tieto hlavolamy sa zameriavajú na kompatibilitu zdrojového a binárneho kódu medzi klientskými programami a knižnicami, ktoré tieto programy používajú.

download Stiahnite si zdroj Získajte zdrojový kód pre aplikácie tohto príspevku. Vytvoril Jeff Friesen pre JavaWorld

Na vývoj poštového kódu bol použitý nasledujúci softvér:

  • 64-bit JDK 7u6
  • JExcelAPI 2.6.12

Kód príspevku bol testovaný na nasledujúcich platformách:

  • JVM v 64-bitovom systéme Windows 7 SP1

Tento príbeh, „Čítanie a písanie tabuliek programu Excel“, bol pôvodne publikovaný spoločnosťou JavaWorld.

$config[zx-auto] not found$config[zx-overlay] not found