Avoimen lähdekoodin yhteisö on luonut monia avoimen lähdekoodin Java-projekteja, jotka vaihtelevat kartoitusohjelmistoista pelikehyksiin tekstinkäsittelyohjelmiin. Tässä viestissä esitän avoimen lähdekoodin kirjastoprojektin Microsoft Excel -taulukoiden lukemista ja kirjoittamista varten.
Laskentataulukon kirjaston suositteleminen
K: Minua on pyydetty laajentamaan yritykseni Java-pohjaista taulukkolaskentaohjelmaa Excel-laskentataulukoiden lukemiseen ja kirjoittamiseen. Voitteko suositella avoimen lähdekoodin Java-kirjastoa, joka auttaa minua tässä tehtävässä?
A: Haluat ehkä tarkistaa JExcelAPI: n, joka on kypsä Java-pohjainen avoimen lähdekoodin kirjasto, jonka avulla voit lukea, kirjoittaa ja muokata Excel-laskentataulukoita. Tässä on muutamia sen monista ominaisuuksista:
- Lukee tietoja Excel 95-, 97-, 2000-, XP- ja 2003-työkirjoista
- Lukee ja kirjoittaa kaavoja (vain Excel 97 ja uudemmat)
- Luo laskentataulukot Excel 2000 -muodossa
- Tukee fontin, numeron ja päivämäärän muotoilua
- Tukee solujen varjostusta, solujen reunustamista ja solujen värjäystä
- Muokkaa olemassa olevia laskentataulukoita
- Tukee kaavion kopiointia
- Tukee kuvien lisäämistä ja kopiointia laskentataulukoihin
JExcelAPI: n on kehittänyt Andrew Kahn, ja se julkaistiin GNU Lesser General Public License -lisenssillä.
JExcelAPI-kirjaston lataaminen
K: Kuinka voin ladata JExcelAPI: n?
A: Lataa JExcelAPI suorittamalla seuraavat vaiheet:
- Osoita selaimesi JExcelAPI: n SourceForge-sivustolle.
- Klikkaa
jexcelapi
linkki. - Napsauta avautuvalla sivulla yhtä kansiolinkistä. Napsautin esimerkiksi
2.6.12
linkki. - Napsauta tuloksena olevalla sivulla jakeluaineiston arkiston tiedostonimeä. Napsautin esimerkiksi
jexcelapi_2_6_12.zip
linkki. - Lyhyen viiveen jälkeen selaimesi kehottaa sinua tallentamaan tämän tiedoston. Mene eteenpäin ja tallenna tiedosto.
Poista tämän tiedoston arkistointi latauksen jälkeen. Ota huomioon a jexcelapi
kotihakemisto a: n sisällä jexcelapi_2_6_12
hakemistoon.
JExcelAPI-kirjaston esittely
K: Sisältääkö JExcelAPI-kirjasto esittelyjä?
A: JExcelAPI: t jexcelapi
kotihakemisto sisältää a jxl.jar
tiedosto, joka sisältää demoja laskentataulukoiden lukemista, kirjoittamista ja kopiointia varten.
Luettu demo lukee olemassa olevan laskentataulukon muuntamalla se pilkulla erotetuksi arvoksi (CSV) tai XML-muotoon -csv
tai -xml
komentorivivaihtoehto. Harkitse seuraavia esimerkkejä:
java -jar jxl.jar -csv budget.xls java -jar jxl.jar -xml budget.xls
Nämä esimerkit luetaan budget.xls
ja tulostaa sen sisällön CSV- ja XML-muodossa vakiolähtöön. Kun kumpikaan -csv
ei myöskään -xml
on määritelty, -csv
on oletettu.
Kirjoitusdemo luo laskentataulukon, joka sisältää kaavoja, reunuksia, kuvia ja muuta. Tämä laskentataulukko luodaan määrittämällä -kirjoittaa
komentorivivaihtoehto, kuten alla on esitetty:
java -jar jxl.jar-kirjoita näyte.xls
Kuva 1 esittää osan tuloksesta näyte.xls
laskentataulukko.
Kuva 1. Käytin LibreOffice Calc -sovellusta päästäksesi näyte.xls-laskentataulukkoon
Kopio demo kopioi mallilaskentataulukon jxlrwtest.xls
, joka on tallennettu samaan hakemistoon kuin jxl.jar
, uuteen laskentataulukkoon. Tuloksena olevassa laskentataulukossa ensimmäinen taulukko (alkuperäinen) on muuttumaton, kun taas toinen taulukko (muokattu) sisältää muokattuja arvoja.
Tämä esittely luodaan määrittämällä -rw
komentorivivalinta, jota seuraa jxlrwtest.xls
ja lähtötaulukon nimi. Harkitse seuraavaa komentoriviä:
java -jar jxl.jar -rw jxlrwtest.xls copy.xls
Tämä komentorivi kopioi jxlrwtest.xls
että copy.xls
. Kuvassa 2 on toinen (muokattu) taulukko LibreOffice Calc.
Kuva 2. Napsauta alkuperäisiä ja muokattuja välilehtiä nähdäksesi alkuperäiset ja muokatut taulukot
Sisältää JExcelAPI: n kääntämistä ja suorittamista varten
K: Kuinka sisällytän JExcelAPI: n lähdekoodia käännettäessä ja sovellusta suoritettaessa?
A: Jos haluat sisällyttää JExcelAPI: n lähdekoodia käännettäessä ja sovellusta suoritettaessa, tee jokin seuraavista:
- Lisää
jexcelapi
kotihakemistotjxl.jar
tiedosto sinunCLASSPATH
ympäristömuuttuja. - Sisältää
jxl.jar
kauttajavac
jajava
ohjelman-cp
komentorivivaihtoehto.
Ohjelmointi JExcelAPI: n avulla
K: Kuinka luon Java-ohjelmia, jotka hyödyntävät JExcelAPI: tä?
A: jexcelapi
kotihakemisto sisältää a tutorial.html
tiedosto, joka sisältää JExcelAPI-ohjelmoinnin perusopetuksen. Opetusohjelma näyttää, miten voit laskea, kirjoittaa ja kopioida laskentataulukoita. Opetusohjelmassa käsitellään myös muotoilua.
jexcelapi
sisältää myös a asiakirjat
alihakemisto, joka tarjoaa pääsyn laajaan API-dokumentaatioon. Osoita verkkoselaimesi tähän hakemistoon index.html
tiedosto ja voit tutkia tämän kirjaston neljän dokumentoidun paketin tyyppejä:
jxl
: pääpaketin tyypitjxl.demo
: tyypit eri demoillejxl.formaatti
: muotoiluun liittyvät tyypitjxl.write
: tyypit laskentataulukkoon kirjoittamista varten
Huomaa, että tämä luettelo ei ole tyhjentävä. Lisäpaketit, kuten jxl.lue
ovat läsnä, mutta niitä ei ole dokumentoitu. Jos haluat oppia lisää paketeista, suorita jar tvf jxl.jar
ja tutkia saadun JAR-listan pakettitiedot.
JExcelAPI: n käytön aloittamiseksi olen luonut yksinkertaisen JExcelAPIDemo
sovellus, joka osoittaa uuden laskentataulukon luomisen output.xls
ja sitten lukea ja tulostaa tämän laskentataulukon sisältö. Tutustu luetteloon 1.
Luettelointi 1. Yksinkertaisen laskentataulukon kirjoittaminen ja lukeminen
tuo java.io.File; tuo java.io.IOException; tuoda jxl.Cell; tuo jxl.Sheet; tuoda jxl.Työkirja; tuoda jxl.read.biff.BiffException; tuo jxl.write.Label; tuo jxl.write.Number; tuo jxl.write.WritableSheet; tuo jxl.write.WritableWorkbook; tuo jxl.write.WriteException; public class JExcelAPIDemo {public static void main (String [] args) heittää BiffException, IOException, WriteException {WritableWorkbook wworkbook; wworkbook = Workbook.createWorkbook (uusi tiedosto ("output.xls")); WritableSheet wsheet = wworkbook.createSheet ("Ensimmäinen arkki", 0); Label label = uusi Label (0, 2, "A label record"); wsheet.addCell (tarra); Numeron numero = uusi luku (3, 4, 3.1459); wsheet.addCell (numero); wbookbook.write (); wbookbook.close (); Työkirjan työkirja = Workbook.getWorkbook (uusi tiedosto ("output.xls")); Arkkiarkki = työkirja.getSheet (0); Solusolu1 = sheet.getCell (0, 2); System.out.println (cell1.getContents ()); Solusolu2 = sheet.getCell (3, 4); System.out.println (cell2.getContents ()); työkirja.sulje (); }}
Listaus 1 luo ensin kirjoitettavan työkirjan kutsumalla yhden Työkirja
tehtaan menetelmiä. Tälle työkirjalle luodaan sitten kirjoitettava taulukko ja lisätään sitten tarra ja numero taulukon kahtena soluarvona. Työkirja sitten kirjoitetaan ja suljetaan.
Listaus 1 jatkuu hankkimalla siihen työkirja output.xls
ja lukea sen sisältöä. getSheet ()
menetelmä tarjoaa pääsyn tämän työkirjan ensimmäiseen taulukkoon. Sen getCell ()
menetelmä kutsutaan pääsemään kahteen soluun, joiden sisältö sitten tuotetaan.
Olettaen että jxl.jar
sijaitsee nykyisessä hakemistossa, suorita seuraava komento kääntääksesi Listaus 1:
javac -cp jxl.jar JExcelAPIDemo.java
Jos oletetaan onnistuneen, suorita seuraava komento JExcelAPIDemo
:
java -cp jxl.jar ;. JExcelAPIDemo
Ota huomioon seuraava tulos:
Tarralevy 3.146
Kuva 3 näyttää sinut output.xls
LibreOffice-kontekstissa.
Kuva 3. Yksinäinen arkki näyttää kaksi soluarvoa
Mitä seuraavaksi?
Seuraavan kerran esitän joukon pulmia, jotka käsittelevät Java-kirjastojen kehitystä. Nämä pulmapelit keskittyvät lähde- ja binaarikoodien yhteensopivuuteen asiakasohjelmien ja näiden ohjelmien käyttämien kirjastojen välillä.
lataa lähde Lataa lähde Hanki tämän viestin sovellusten lähdekoodi. Luonut Jeff Friesen JavaWorldilleSeuraavaa ohjelmistoa käytettiin postin koodin kehittämiseen:
- 64-bittinen JDK 7u6
- JExcelAPI 2.6.12
Postin koodi testattiin seuraavilla alustoilla:
- JVM 64-bittisessä Windows 7 SP1: ssä
Tämän tarinan "Excel-laskentataulukoiden lukeminen ja kirjoittaminen" julkaisi alun perin JavaWorld.