Programavimas

„Excel“ skaičiuoklių skaitymas ir rašymas

Atvirojo kodo bendruomenė sukūrė daug atvirojo kodo „Java“ projektų, kurie svyruoja nuo schemų programinės įrangos iki žaidimų sistemų iki teksto procesorių. Šiame įraše pristatau atvirojo kodo bibliotekos projektą, skirtą „Microsoft Excel“ skaičiuoklėms skaityti ir rašyti.

Rekomenduojama skaičiuoklių biblioteka

Klausimas: Manęs paprašė išplėsti savo įmonės „Java“ skaičiuoklės programinę įrangą, kad galėčiau skaityti ir rašyti „Excel“ skaičiuokles. Ar galėtumėte rekomenduoti atviro kodo „Java“ biblioteką, kuri man padės atlikti šią užduotį?

A: Galbūt norėsite patikrinti „JExcelAPI“, kuri yra brandi, „Java“ pagrindu sukurta atvirojo kodo biblioteka, leidžianti skaityti, rašyti ir modifikuoti „Excel“ skaičiuokles. Štai keletas jo daugybės funkcijų:

  • Skaito duomenis iš „Excel 95“, „97“, „2000“, „XP“ ir „2003“ darbaknygių
  • Skaito ir rašo formules (tik „Excel 97“ ir naujesnės versijos)
  • Generuoja skaičiuokles „Excel 2000“ formatu
  • Palaiko šrifto, skaičiaus ir datos formatavimą
  • Palaiko ląstelių šešėliavimą, ląstelių ribojimąsi ir ląstelių spalvinimą
  • Pakeičia esamus darbalapius
  • Palaiko diagramų kopijavimą
  • Palaiko vaizdų įterpimą ir kopijavimą į skaičiuokles

JExcelAPI sukūrė Andrew Kahnas ir jis buvo išleistas pagal GNU Mažosios bendrosios viešosios licencijos licenciją.

Atsisiunčiama JExcelAPI biblioteka

Klausimas: Kaip atsisiųsti „JExcelAPI“?

A: Atlikite šiuos veiksmus norėdami atsisiųsti „JExcelAPI“:

  1. Nukreipkite naršyklę į „JExcelAPI“ „SourceForge“ svetainę.
  2. Spustelėkite jexcelapi nuoroda.
  3. Gautame puslapyje spustelėkite vieną iš aplanko nuorodų. Pavyzdžiui, spustelėjau 2.6.12 nuoroda.
  4. Gautame puslapyje spustelėkite platinimo archyvo failo pavadinimą. Pavyzdžiui, spustelėjau jexcelapi_2_6_12.zip nuoroda.
  5. Po trumpo atidėjimo jūsų naršyklė turėtų paraginti jus išsaugoti šį failą. Pirmyn ir išsaugokite failą.

Po atsisiuntimo išarchyvuokite šį failą. Turėtumėte stebėti a jexcelapi namų katalogas per jexcelapi_2_6_12 kataloge.

JExcelAPI bibliotekos demonstravimas

Klausimas: Ar JExcelAPI bibliotekoje yra demonstracinių versijų?

A: „JExcelAPI“ jexcelapi namų kataloge yra a jxl.jar failas, kuriame yra skaičiuoklių skaitymo, rašymo ir kopijavimo demonstracinės versijos.

Perskaityta demonstracinė versija nuskaito esamą skaičiuoklę, konvertuodama ją į kableliais atskirtą reikšmę (CSV) arba XML formatą naudodama -csv arba -xml komandinės eilutės parinktis. Apsvarstykite šiuos pavyzdžius:

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

Šie pavyzdžiai perskaityti biudžetas.xls ir išleisti jo turinį CSV ir XML formatu į standartinę išvestį. Kai nė vienas -csv nei -xml yra nurodytas, -csv daroma prielaida.

Rašymo demonstracinė versija sukuria skaičiuoklės pavyzdį, kuriame yra formulės, kraštinės, vaizdai ir dar daugiau. Ši skaičiuoklė sugeneruojama nurodant -rasyti komandinės eilutės parinktis, kaip parodyta žemiau:

java -jar jxl.jar -rasyti pavyzdi.xls

1 paveiksle parodyta dalis gauto rezultato pavyzdys.xls skaičiuoklė.

1 paveikslas. Norėdamas patekti į skaičiuoklę sample.xls, naudojau „LibreOffice Calc“

Kopija demonstracinė kopija skaičiuoklės pavyzdys jxlrwtest.xls, kuris saugomas tame pačiame kataloge kaip jxl.jar, į naują skaičiuoklę. Gautoje skaičiuoklėje pirmasis lapas (originalas) yra nepakitęs, o antrame (modifikuotas) yra pakeistos vertės.

Ši demonstracinė versija sukuriama nurodant -rw komandinės eilutės parinktis, po kurios eina jxlrwtest.xls ir išvesties skaičiuoklės pavadinimas. Apsvarstykite šią komandinę eilutę:

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

Ši komandinė eilutė nukopijuojama jxlrwtest.xls į kopija.xls. 2 paveiksle parodytas antrasis (modifikuotas) „LibreOffice Calc“ lapas.

2 paveikslas. Spustelėkite pradinius ir modifikuotus skirtukus, kad peržiūrėtumėte originalius ir modifikuotus lapus

Įskaitant JExcelAPI kompiliavimui ir vykdymui

Klausimas: Kaip įtraukti JExcelAPI kuriant šaltinio kodą ir vykdant programą?

A: Norėdami įtraukti „JExcelAPI“ kurdami šaltinio kodą ir vykdydami programą, atlikite vieną iš šių veiksmų:

  • Pridėti jexcelapi namų katalogo jxl.jar failą į CLASSPATH aplinkos kintamasis.
  • Įtraukti jxl.jar per javac ir java programos -cp komandinės eilutės parinktis.

Programavimas naudojant JExcelAPI

Klausimas: Kaip sukurti „Java“ programas, naudojančias „JExcelAPI“?

A: jexcelapi namų kataloge yra a pamoka.html failas, kuriame pateikiama pagrindinė programavimo su JExcelAPI pamoka. Pamoka parodo, kaip skaityti, rašyti ir kopijuoti skaičiuokles. Pamokoje taip pat aptariamas formatavimas.

jexcelapi taip pat apima a dokumentai pakatalogis, kuris suteikia prieigą prie išsamių API dokumentų. Nukreipkite savo žiniatinklio naršyklę į šį katalogą index.html failą ir galite ištirti šios bibliotekos keturių dokumentuotų paketų tipus:

  • jxl: pagrindinio paketo tipai
  • jxl.demo: įvairių demonstracinių versijų tipai
  • jxl.formatas: tipai, susiję su formatavimu
  • jxl.rasyti: tipai, skirti rašyti į skaičiuoklę

Atminkite, kad šis sąrašas nėra išsamus. Papildomos pakuotės, tokios kaip jxl.skaityti yra, bet nėra dokumentais patvirtinti. Norėdami sužinoti apie papildomus paketus, vykdykite stiklainis tvf jxl.jar ir išnagrinėkite pakuotės informaciją gautame JAR sąraše.

Kad galėčiau lengviau naudotis „JExcelAPI“, sukūriau paprastą „JExcelAPIDemo“ programa, rodanti, kaip sukurti naują skaičiuoklę, išsaugotą produkcija.xls tada perskaitydamas ir išleisdamas šios skaičiuoklės turinį. Peržiūrėkite 1 sąrašą.

Sąrašai 1. Paprastos skaičiuoklės rašymas ir skaitymas

importuoti java.io.File; importuoti java.io.IOException; importuoti jxl.Cell; importuoti jxl.Sheet; importuoti jxl.Darbo knyga; importuoti jxl.read.biff.BiffException; importuoti jxl.write.Label; importuoti jxl.write.Number; importuoti jxl.write.WritableSheet; importuoti jxl.write.WritableWorkbook; importuoti jxl.write.WriteException; public class JExcelAPIDemo {public static void main (String [] args) meta BiffException, IOException, WriteException {WritableWorkbook wworkbook; wworkbook = Workbook.createWorkbook (naujas failas ("output.xls")); WritableSheet wsheet = wworkbook.createSheet ("Pirmasis lapas", 0); Etiketės etiketė = nauja etiketė (0, 2, "A label record"); wsheet.addCell (etiketė); Skaičiaus numeris = naujas skaičius (3, 4, 3.1459); wsheet.addCell (skaičius); darbo knyga.rasyti (); darbo knyga.uždaryti (); Darbaknygės darbaknygė = Workbook.getWorkbook (new File ("output.xls")); Lapo lapas = darbaknygė.getSheet (0); Ląstelės langelis1 = sheet.getCell (0, 2); System.out.println (cell1.getContents ()); Ląstelės ląstelė2 = sheet.getCell (3, 4); System.out.println (cell2.getContents ()); darbaknygė.uždaryti (); }}

1 sąrašas pirmiausia sukuria rašomą darbaknygę, pasitelkdamas vieną iš Darbaknygėgamyklos metodai. Tada šiai darbaknygei sukuriamas rašomasis lapas, tada etiketė ir skaičius pridedami kaip dviejų lapo langelių vertės. Tada darbo knyga parašoma ir uždaroma.

1 sąrašas tęsiamas gavus susietą darbaknygę produkcija.xls ir skaitydamas jos turinį. „getSheet“ () metodas suteikia prieigą prie pirmojo šios darbaknygės lapo. Jo „getCell“ () metodas yra vadinamas prieigai prie dviejų langelių, kurių turinys tada išvedamas.

Tariant, kad jxl.jar yra dabartiniame kataloge, atlikite šią komandą, kad sukompiluotumėte 1 sąrašą:

javac -cp jxl.jar JExcelAPIDemo.java

Darant prielaidą, kad pavyks, vykdykite šią komandą „JExcelAPIDemo“:

java -cp jxl.jar ;. „JExcelAPIDemo“

Turėtumėte stebėti šį rezultatą:

Etiketės įrašas 3.146

3 paveiksle parodyta produkcija.xls „LibreOffice“ kontekste.

3 pav. Atskirame lape pateikiamos dvi langelių vertės

Kas toliau?

Kitą kartą pateikiu galvosūkių rinkinį, kuriame kalbama apie „Java“ bibliotekų raidą. Šie galvosūkiai sutelkia dėmesį į kliento programų ir bibliotekų, kurias naudoja šios programos, šaltinio ir dvejetainių kodų suderinamumą.

atsisiųsti Atsisiųskite šaltinį Gaukite šio įrašo programų šaltinio kodą. Sukūrė Jeffas Friesenas, skirtas „JavaWorld“

Kuriant pašto kodą buvo naudojama ši programinė įranga:

  • 64 bitų „JDK 7u6“
  • JExcelAPI 2.6.12

Pašto kodas buvo išbandytas šioje platformoje (-ose):

  • JVM 64 bitų „Windows 7 SP1“

Šią istoriją „Excel skaičiuoklių skaitymas ir rašymas“ iš pradžių paskelbė „JavaWorld“.

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