Ohjelmointi

Erinomainen Excelissä Java-ohjelmalla

Olipa sinulla taseita, tilitietojen latauksia, verolaskelmia tai palkkalaskelmia, ne kaikki tulevat yleensä Microsoft Exceliin. Ei-IT-ammattilaiset tuntevat olonsa mukavaksi käyttää Microsoft Exceliä tiedonvaihtotekniikkana. Jakartan POI (Poor Obfuscation Implementation) -sovellusliittymä on loistava tapa Java-ohjelmoijille päästä Microsoftin dokumenttimuotoihin. Jakartan POI: n vanhin sovellusliittymä on HSSF (Horrible Spreadsheet Format) -sovellusliittymä, joka käyttää Microsoft Excel -asiakirjoja.

Tässä artikkelissa käyn läpi vaiheet Excel-asiakirjojen luomiseen ja lukemiseen sekä fonttien ja solujen muotoilun käyttämiseen - kaikki Java-sovelluksella.

merkintä: Voit ladata kaikkien tämän artikkelin esimerkkien lähdekoodin Resursseista.

POI-terminologia

Jakartan kiinnostaviin kohteisiin liittyvät keskeiset termit ovat seuraavat:

  • POIFS (huono Obfuscation Implementation File System): Java-sovellusliittymät OLE (Object Linking and Embedding) 2 -yhdistelmämuotojen lukemiseen ja kirjoittamiseen
  • HSSF (kauhea laskentataulukon muoto): Java API lukea Microsoft Excel
  • HDF (kamala asiakirjamuoto): Java-sovellusliittymä Microsoft Word 97: n lukemiseen ja kirjoittamiseen
  • HPSF (kamala ominaisuusjoukon muoto): Java-sovellusliittymä ominaisuusjoukkojen lukemiseen (vain) Javaa käyttämällä

Luo Excel-asiakirja

Jakartan POI-sovellusliittymää voidaan käyttää luomaan Excel-asiakirja ohjelmallisesti. Tärkeitä vaiheita ovat:

  • Luo työkirja: HSSFWorkbook-työkirja = uusi HSSFWorkbook ();
  • Luo uusi laskentataulukko työkirjaan ja nimeä laskentataulukko "Java Excels": HSSFSheet-taulukko = työkirja.createSheet ("Java ylivertainen");
  • Luo uusi rivi taulukkoon: HSSFRow-rivi = sheet.createRow ((lyhyt) 0);
  • Luo solu riville: HSSFCell-solu = rivi.luodaCell ((lyhyt) 0);
  • Lisää sisältöä soluun: cell.setCellValue ("Ota kuppi XL: ää");
  • Kirjoita työkirja tiedostojärjestelmään: työkirja.write (fileOutputStream);

Lue tiedot Excel-asiakirjasta

Tässä esimerkissä näet, kuinka voit lukea arvoja Excel-asiakirjasta.

Oletetaan, että tämä on Excel-taulukko:

työntekijän nimiErikoistuminenNimitys
AnbuOhjelmointiVanhempi ohjelmoija
JasonPankkialaLiiketoiminta-analyytikko
RameshTietokannatDBA
MackyBKirjanpitoToimituspää

Tärkeimmät vaiheet Excel-taulukon lukemisessa ovat seuraavat:

  • Luo uusi Excel-asiakirjaviite: HSFWorkbook-työkirja = uusi HSSFWorkbook (uusi FileInputStream (fileToBeRead));.
  • Katso taulukko: Oletusarvoisesti Excel-asiakirjan ensimmäinen taulukko on viitteessä 0: HSSFSheet-taulukko = työkirja.getSheetAt (0);. Arkkiin voidaan viitata myös nimellä. Oletetaan, että Excel-taulukolla on oletusnimi "Sheet1". Siihen voidaan viitata seuraavasti: HSSFSheet-taulukko = työkirja.getSheet ("Arkki1");.
  • Viittaus riviin: HSSFRow-rivi = sheet.getRow (0);.
  • Viittaa rivin soluun: HSSFCell-solu = rivi.getCell ((lyhyt) 0);.
  • Hae arvot kyseiseen soluun: cell.getStringCellValue ();.

Käytännön esimerkki

Oletetaan nyt, että haluamme nähdä luettelon kaikista ilmoitetuista menetelmistä ja jäsenmuuttujista jar-tiedostossa. Olisi ihanteellista, jos kaikki tiedot olisi yhdistetty yhteen tiedostoon. Haluamme tarkastella tietoja siten, että luokkien nimet ovat ensimmäisessä sarakkeessa, ilmoitetut kentät toisessa sarakkeessa ja ilmoitetut menetelmät kolmannessa sarakkeessa sarakkeiden otsikot näkyvät punaisina.

Ohjelman on suoritettava seuraavat toimet:

  • Pura purkitiedosto
  • Lue kaikki purkitiedoston luokkatiedostot
  • Lataa luokat purkkitiedostoon
  • Hanki ilmoitetut menetelmät ja kentät heijastuksen avulla
  • Kirjoita kurssitiedot Excel-taulukolle Jakartan POI: lla

Keskitymme vain mielenkiintoisiin vaiheisiin Jakartan POI: n käytössä:

  • Luo uusi Excel-asiakirja: työkirja = uusi HSSFWorkbook ();
  • Tee laskentataulukko kyseiseen asiakirjaan ja anna taulukkolle nimi: sheet = työkirja.createSheet ("Java-luokan tiedot");
  • Aseta kolmen ensimmäisen sarakkeen leveydet: sheet.setColumnWidth ((lyhyt) 0, (lyhyt) 10000);
  • Luo otsikkorivi: HSSFRow-rivi = sheet.createRow ((lyhyt) 0);
  • Luo ja aseta fontti ja solutyyli:
     HSSFFont font = työkirja.createFont (); font.setColor (HSSFFont.COLOR_RED); font.setBoldweight (HSSFFont.BOLDWEIGHT_BOLD); // Luo tyyli HSSFCellStyle cellStyle = workbook.createCellStyle (); cellStyle.setFont (fontti); 
  • Käytä solutyyliä:
     HSSFCell-solu = rivi.luodaCell ((lyhyt) 0); cell.setCellStyle (cellStyle); cell.setCellType (HSSFCell.CELL_TYPE_STRING); cell.setCellValue ("luokan nimi"); 
  • Kirjoita tulostustiedosto:
     FileOutputStream fOut = uusi FileOutputStream (outputFile); // Kirjoita Excel-taulukon työkirja.write (fOut); fOut.flush (); // Tehty tarjous. Sulje se. fOut.close (); 

Yhteenveto

Kuten tässä artikkelissa on osoitettu, Java-kehittäjien ei enää tarvitse hämätä Excel-taulukoiden tietoja. Voimme käyttää ohjelmallisesti Excel-asiakirjoja. Ota kuppi Java-palvelua ja nouse Exceliin!

Elango Sundaram on kokenut Java-ohjelmoija, jolla on kiinnostusta hajautettuun tietojenkäsittelyarkkitehtuuriin, agenttipohjaiseen tekniikkaan ja olio-metodologiaan. Hänellä on tietojenkäsittelytieteen maisterin tutkinto Virginia Tech Universitystä ja hän on kirjoittanut hajautetun laskennan käyttäen Jiniä ja Websphere Studio -sovelluskehittäjän hännän laajennusta (WSAD 4.0).

Lisätietoja tästä aiheesta

  • Lataa tämän artikkelin mukana oleva lähdekoodi

    //images.techhive.com/downloads/idge/imported/article/jvw/2004/03/jw-0322-poi.zip

  • Jakartan POI-verkkosivusto

    //jakarta.apache.org/poi/

  • Lisätietoja POI: sta on kohdassa "Se on POI-täydellinen", Tony Sintes (JavaWorld, Toukokuu 2002)

    //www.javaworld.com/javaworld/javaqa/2002-05/01-qa-0503-excel3.html

  • Saat lisää Java-työkaluja selaamalla Kehitystyökalut osa JavaWorld 's Ajankohtainen hakemisto

    //www.javaworld.com/channel_content/jw-tools-index.shtml

  • Lisää artikkeleita avoimen lähdekoodin työkaluista on Erik Swensonin artikkelissa Avoimen lähdekoodin profiili sarake

    //www.javaworld.com/columns/jw-opensource-index.shtml

Tämän tarinan "Excell in Excel with Java" julkaisi alun perin JavaWorld.

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