Programavimas

Puikiausias „Excel“ su „Java“

Nesvarbu, ar turite balansų, ar atsisiųstų sąskaitų informacijos, ar mokesčių skaičiavimus, ar mokėjimo žiniaraščius, jie visi dažniausiai būna „Microsoft Excel“. Ne IT specialistai jaučiasi patogiai naudodami „Microsoft Excel“ kaip duomenų mainų technologiją. „Jakarta POI“ („Poor Obfuscation Implementation“) API yra puikus būdas „Java“ programuotojams pasiekti „Microsoft“ dokumentų formatus. Labiausiai subrendusi API iš Džakartos LV yra HSSF (Horrible Spreadsheet Format) API, kuri pasiekia „Microsoft Excel“ dokumentus.

Šiame straipsnyje apžvelgiu „Excel“ dokumentų kūrimo ir skaitymo, šriftų ir langelių stiliaus naudojimo veiksmus - naudodamiesi „Java“.

Pastaba: Visų šio straipsnio pavyzdžių šaltinio kodą galite atsisiųsti iš išteklių.

LV terminologija

Pagrindiniai terminai, susiję su Džakartos LV, yra šie:

  • POIFS (prasta apgaulingo įgyvendinimo failų sistema): „Java“ API, skirtos skaityti ir rašyti OLE (Object Linking and Embedding) 2 sudėtinius dokumentų formatus
  • HSSF (siaubingas skaičiuoklės formatas): „Java“ API skaityti „Microsoft Excel“
  • HDF (siaubingas dokumento formatas): „Java“ API skaityti ir rašyti „Microsoft Word 97“
  • HPSF (siaubingo turto rinkinio formatas): „Java“ API nuosavybės rinkinių skaitymui naudojant (tik) „Java“

Sukurkite „Excel“ dokumentą

„Jakarta POI“ API galima naudoti programiškai kuriant „Excel“ dokumentą. Svarbūs veiksmai yra šie:

  • Sukurkite darbaknygę: HSSFWorkbook darbaknygė = nauja HSSFWorkbook ();
  • Darbaknygėje sukurkite naują darbalapį ir pavadinkite darbalapį „Java Excels“: HSSFSheet lapas = darbaknygė.createSheet („Java pasižymi“);
  • Sukurkite naują lapo eilutę: HSSFRow eilutė = lapas.createRow ((trumpas) 0);
  • Sukurkite langelį eilutėje: HSSFCell langelis = row.createCell ((trumpas) 0);
  • Į langelį įdėkite šiek tiek turinio: cell.setCellValue („Turėkite taurę XL“);
  • Įrašykite darbaknygę į failų sistemą: darbaknygė.write (fileOutputStream);

Skaityti duomenis iš „Excel“ dokumento

Šiame pavyzdyje pamatysite, kaip skaityti reikšmes iš „Excel“ dokumento.

Tarkime, kad tai yra mūsų „Excel“ lapas:

Darbuotojo vardasSpecializacijaPaskyrimas
AnbuProgramavimasVyresnysis programuotojas
JasonasBankų pramonėVerslo analitikas
RameshDuomenų bazėsDBA
MackyBApskaitaPristatymo vadovas

Pagrindiniai „Excel“ lapo skaitymo žingsniai yra šie:

  • Sukurkite naują „Excel“ dokumento nuorodą: HSFWorkbook darbaknygė = nauja HSSFWorkbook (nauja FileInputStream (fileToBeRead));.
  • Žr. Lapą: Pagal numatytuosius nustatymus pirmasis „Excel“ dokumento lapas yra 0 nuorodos: HSSFSheet lapas = darbaknygė.getSheetAt (0);. Lapą taip pat galima vadinti vardu. Tarkime, kad „Excel“ lapas turi numatytąjį pavadinimą „Sheet1“. Tai galima nurodyti taip: HSSFSheet lapas = darbaknygė.getSheet ("Sheet1");.
  • Nurodykite eilutę: HSSFRow eilutė = sheet.getRow (0);.
  • Nurodykite langelį eilutėje: HSSFCell langelis = row.getCell ((trumpas) 0);.
  • Gaukite vertes toje langelyje: cell.getStringCellValue ();.

Praktinis pavyzdys

Tarkime, kad norime pamatyti visų deklaruotų metodų ir narių kintamųjų sąrašą jar faile. Būtų idealu, jei vienoje byloje būtų konsoliduotas visos informacijos sąrašas. Norėtume peržiūrėti informaciją taip, kad klasių pavadinimai būtų pirmame stulpelyje, deklaruoti laukai - antrame, o deklaruoti metodai - trečiame, o stulpelių antraštės būtų raudonos.

Programa turės atlikti šias veiklas:

  • Išpakuokite stiklainio failą
  • Perskaitykite visus stiklainio faile esančius klasės failus
  • Įkelkite klases į stiklainio failą
  • Naudodamiesi refleksija, gaukite deklaruotus metodus ir laukus
  • Užrašykite klasės informaciją į „Excel“ lapą naudodami Džakartos LV

Susitelkime tik į įdomius Džakartos LV naudojimo veiksmus:

  • Sukurkite naują „Excel“ dokumentą: darbaknygė = new HSSFWorkbook ();
  • Padarykite tame dokumente darbalapį ir suteikite darbalapiui pavadinimą: lapas = darbaknygė.createSheet („Java klasės informacija“);
  • Nustatykite pirmųjų trijų stulpelių pločius: sheet.setColumnWidth ((trumpas) 0, (trumpas) 10000);
  • Sukurkite antraštės eilutę: HSSFRow eilutė = lapas.createRow ((trumpas) 0);
  • Sukurkite ir nustatykite šrifto ir langelio stilių:
     HSSFFont font = workbook.createFont (); font.setColor (HSSFFont.COLOR_RED); font.setBoldweight (HSSFFont.BOLDWEIGHT_BOLD); // Sukurkite stilių HSSFCellStyle cellStyle = workbook.createCellStyle (); cellStyle.setFont (šriftas); 
  • Naudokite langelio stilių:
     HSSFCell langelis = row.createCell ((trumpas) 0); cell.setCellStyle (cellStyle); cell.setCellType (HSSFCell.CELL_TYPE_STRING); cell.setCellValue ("Klasės pavadinimas"); 
  • Parašykite išvesties failą:
     FileOutputStream fOut = nauja FileOutputStream (outputFile); // Parašykite „Excel“ lapo darbaknygę.write (fOut); fOut.flush (); // Sutarta. Uždaryk tai. fOut.close (); 

Santrauka

Kaip parodyta šiame straipsnyje, „Java“ kūrėjams nebereikia verstis dėl duomenų „Excel“ lapuose. Mes galime programiškai pasiekti „Excel“ dokumentus. Turėkite „Java“ puodelį ir pasižymėkite „Excel“!

„Elango Sundaram“ yra patyręs „Java“ programuotojas, besidomintis paskirstytosios skaičiavimo architektūra, agentų technologijomis ir objektyvia metodika. Jis turi kompiuterių magistro laipsnį Virdžinijos technikos universitete ir parašė „Distributed Computing“, naudodamas „Jini“ ir „Websphere Studio Application Developer Tail Plug-in“ (skirtas WSAD 4.0).

Sužinokite daugiau apie šią temą

  • Atsisiųskite prie šio straipsnio pridedamą šaltinio kodą

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

  • Džakartos LV svetainė

    //jakarta.apache.org/poi/

  • Norėdami sužinoti daugiau apie LV, skaitykite „Tai įdomu POI“, Tony Sintes („JavaWorld“, 2002 m. Gegužė)

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

  • Norėdami rasti daugiau „Java“ įrankių, naršykite Kūrimo įrankiai skyrius „JavaWorld“s aktuali rodyklė

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

  • Daugiau straipsnių apie atvirojo kodo įrankius rasite Eriko Swensono straipsnyje Atvirojo kodo profilis stulpelį

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

Šią istoriją „Excell in Excel with Java“ iš pradžių paskelbė „JavaWorld“.

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