Programmēšana

Izcils programmā Excel ar Java

Neatkarīgi no tā, vai jums ir bilances, konta informācijas lejupielāde, nodokļu aprēķini vai algas lapas, tās visas parasti nāk no Microsoft Excel. Ne IT profesionāļi jūtas ērti, izmantojot Microsoft Excel kā datu apmaiņas tehnoloģiju. Džakartas POI (Poor Obfuscation Implementation) API ir fantastisks veids, kā Java programmētāji var piekļūt Microsoft dokumentu formātiem. Visnogatavinātākā API no Džakartas IP ir HSSF (Horrible Spreadsheet Format) API, kas piekļūst Microsoft Excel dokumentiem.

Šajā rakstā es iepazīstinu jūs ar Excel dokumentu izveides un lasīšanas, kā arī fontu un šūnu stila izmantošanas darbībām, izmantojot Java.

Piezīme: Visu šī raksta piemēru avota kodu varat lejupielādēt no resursiem.

IP terminoloģija

Galvenie ar Džakartas IP saistītie termini ir šādi:

  • POIFS (slikta aizklāšanas ieviešanas failu sistēma): Java API OLE (objektu saistīšana un iegulšana) 2 saliktu dokumentu formātu lasīšanai un rakstīšanai
  • HSSF (briesmīgais izklājlapas formāts): Java API, lai lasītu Microsoft Excel
  • HDF (briesmīgs dokumenta formāts): Java API, lai lasītu un rakstītu Microsoft Word 97
  • HPSF (briesmīgo īpašumu kopas formāts): Java API īpašību kopu lasīšanai, izmantojot (tikai) Java

Izveidojiet Excel dokumentu

Džakartas IP API var izmantot, lai programmiski izveidotu Excel dokumentu. Svarīgi iesaistītie soļi ir:

  • Izveidojiet darbgrāmatu: HSSFWorkbook darbgrāmata = jauna HSSFWorkbook ();
  • Darbgrāmatā izveidojiet jaunu darblapu un darblapai piešķiriet nosaukumu "Java izceļas": HSSFSheet lapa = darbgrāmata.createSheet ("Java izceļas");
  • Izveidojiet jaunu rindu lapā: HSSFRow rinda = lapa.createRow ((īss) 0);
  • Izveidojiet šūnu rindā: HSSFCell šūna = row.createCell ((īss) 0);
  • Ievietojiet šūnā saturu: cell.setCellValue ("Iegūstiet tasi XL");
  • Ierakstiet darbgrāmatu failu sistēmā: darbgrāmata.write (fileOutputStream);

Lasīt datus no Excel dokumenta

Šajā piemērā jūs redzēsiet, kā nolasīt vērtības no Excel dokumenta.

Pieņemsim, ka šī ir mūsu Excel lapa:

darbinieka vārdsSpecializācijaApzīmējums
AnbuProgrammēšanaVecākais programmētājs
DžeisonsBanku nozareBiznesa analītiķis
RameshDatu bāzesDBA
MackyBGrāmatvedībaPiegādes galva

Excel lapas lasīšanas galvenās darbības ir šādas:

  • Izveidojiet jaunu Excel dokumenta atsauci: HSFWorkbook darbgrāmata = jauna HSSFWorkbook (jauna FileInputStream (fileToBeRead));.
  • Skatiet lapu: Pēc noklusējuma Excel dokumenta pirmā lapa ir atsauce 0: HSSFSheet lapa = darbgrāmata.getSheetAt (0);. Uz lapu var atsaukties arī pēc nosaukuma. Pieņemsim, ka Excel lapai ir noklusējuma nosaukums "Sheet1". Uz to var atsaukties šādi: HSSFSheet lapa = darbgrāmata.getSheet ("Sheet1");.
  • Atsaucieties uz rindu: HSSFRow rinda = sheet.getRow (0);.
  • Atsaucieties uz šūnu rindā: HSSFCell šūna = row.getCell ((īss) 0);.
  • Iegūstiet vērtības šajā šūnā: cell.getStringCellValue ();.

Praktisks piemērs

Tagad pieņemsim, ka mēs vēlamies redzēt visu deklarēto metožu un dalībnieku mainīgo sarakstu jar failā. Būtu ideāli, ja būtu apkopots visas informācijas saraksts vienā failā. Mēs vēlētos apskatīt informāciju tā, lai klašu nosaukumi būtu pirmajā kolonnā, deklarētie lauki otrajā kolonnā un deklarētās metodes trešajā slejā, kolonnu virsrakstiem parādoties sarkanā krāsā.

Programmai būs jāveic šādas darbības:

  • Atbrīvojiet burkas failu
  • Izlasiet visus burku failā esošos klases failus
  • Ielādējiet klases burku failā
  • Izmantojot refleksiju, iegūstiet deklarētās metodes un laukus
  • Ierakstiet klases informāciju Excel lapā, izmantojot Džakartas IP

Koncentrēsimies tikai uz interesantajiem Džakartas IP izmantošanas soļiem:

  • Izveidojiet jaunu Excel dokumentu: darbgrāmata = jauna HSSFWorkbook ();
  • Šajā dokumentā izveidojiet darblapu un piešķiriet darblapai nosaukumu: lapa = darbgrāmata.createSheet ("Java klases informācija");
  • Iestatiet pirmo trīs kolonnu platumu: sheet.setColumnWidth ((īss) 0, (īss) 10000);
  • Izveidojiet galvenes rindiņu: HSSFRow rinda = lapa.createRow ((īss) 0);
  • Izveidojiet un iestatiet fontu un šūnu stilu:
     HSSFFont font = darbgrāmata.createFont (); font.setColor (HSSFFont.COLOR_RED); font.setBoldweight (HSSFFont.BOLDWEIGHT_BOLD); // Izveidojiet stilu HSSFCellStyle cellStyle = darbgrāmata.createCellStyle (); cellStyle.setFont (fonts); 
  • Izmantojiet šūnu stilu:
     HSSFCell šūna = row.createCell ((īss) 0); cell.setCellStyle (cellStyle); cell.setCellType (HSSFCell.CELL_TYPE_STRING); cell.setCellValue ("Klases nosaukums"); 
  • Uzrakstiet izvades failu:
     FileOutputStream fOut = jauns FileOutputStream (outputFile); // Uzrakstiet Excel lapas darbgrāmatu.write (fOut); fOut.flush (); // Darījums noslēgts. Aizveriet to. fOut.close (); 

Kopsavilkums

Kā parādīts šajā rakstā, Java izstrādātājiem vairs nav jāraugās ar datiem Excel lapās. Mēs varam programmatiski piekļūt Excel dokumentiem. Ir tasi Java un izceļas programmā Excel!

Elango Sundaram ir pieredzējis Java programmētājs, kuram ir pētniecības intereses par izplatītās skaitļošanas arhitektūru, aģentu tehnoloģijām un objektorientēto metodiku. Viņš ir ieguvis maģistra grādu datorzinātnēs Virdžīnijas Tehniskajā universitātē un ir uzrakstījis izplatīto skaitļošanu, izmantojot Jini un Websphere Studio Application Developer Tail Plug-in (WSAD 4.0).

Uzziniet vairāk par šo tēmu

  • Lejupielādējiet avota kodu, kas pievienots šim rakstam

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

  • Džakartas IP vietne

    //jakarta.apache.org/poi/

  • Lai uzzinātu vairāk par IP, lasiet "Tas ir POI-fect", Tonijs Sintess (JavaWorld, 2002. gada maijs)

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

  • Lai iegūtu vairāk Java rīku, pārlūkojiet Izstrādes rīki sadaļa JavaWorld 's Aktuālais rādītājs

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

  • Plašākus rakstus par atvērtā koda rīkiem skatiet Ērika Svensona rakstā Atvērtā pirmkoda profils kolonna

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

Šo stāstu “Excel programmā Excel ar Java” sākotnēji publicēja JavaWorld.

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