PHPExcel je biblioteka dizajnirana za obradu podataka u MS Excel formatu. Uz njegovu pomoć možete čitati i pisati informacije u datoteke, formatirati njihov sadržaj, izvoditi operacije s formulama, stilovima itd.
PHPExcel zahteva PHP 5.2 ili noviji za rad, kao i omogućene ekstenzije ZIP, XML i GD2.
Napomena: Ekstenzija php_zip je potrebna samo kada se koriste klase PHPExcel_Reader_Excel2007, PHPExcel_Writer_Excel2007 i PHPExcel_Reader_OOCalc. To jest, ako želite da koristite PHPExcel za potpun rad sa datotekama u .xlsx ili .ods formatima, onda će vam trebati ekstenzija zip.
Funkcije PHPExcel biblioteke:
1. PHPExcel može čitati različite formate datoteka sa tabelama:
- Excel5
- Excel2003XML
- Excel2007
- OOCalc
- SYLK
- Gnumeric
- CSV
2. Kreiranje i obrada dokumenata koristeći PHP
Instaliranje PHPExcela:
1) Preuzmite biblioteku sa službene web stranice https://github.com/PHPOffice/PHPExcel
2) U preuzetoj arhivi kopirajte sadržaj iz foldera classes u korijen stranice
Sastav arhive:
/classes // Katalog biblioteke PHPExcel
/classess/PHPExcel/ // Katalog klasa biblioteke PHPExcel
/classess/PHPExcel.php // Fajl za include, sadrži ključne metode za obradu podataka
/documentation // Kompletna dokumentacija za korišćenje biblioteke
/license.txt // Licencni ugovor
/install.txt // Kratko uputstvo za instalaciju
/examples // Katalog sa primerima za korišćenje PHPExcel-a
/changelog.txt // Spisak izmena u trenutnoj verziji
Primjer čitanja Excel datoteke pomoću PHPExcel klase
Da biste pročitali podatke iz Excel datoteke, morate povezati datoteku biblioteke PHPExcel i koristiti metodu load() klase PHPExcel_IOFactory. Ova metoda prikuplja podatke od svih sa svih listova trenutnog dokumenta:
require_once '/put/do/fajla/PHPExcel.php';
$excel = PHPExcel_IOFactory::load('/put/do/fajla/simple.xlsx');
Zatim formiramo niz svih listova u Excel datoteci koristeći petlju:
foreach($excel ->getWorksheetIterator() as $worksheet) {
$lists[] = $worksheet->toArray();
}
Izlaz generiranog niza u obliku HTML tabela:
foreach($lists as $list) {
echo '<table border="1">';
// Prolazak kroz redove
foreach($list as $row) {
echo '<tr>';
// Prolazak kroz kolone
foreach($row as $col) {
echo '<td>' . $col . '</td>';
}
echo '</tr>';
}
echo '</table>';
}
Osnovne metode i svojstva PHPExcel klase
PHPExcel klasa je jezgro PHPExcela. Sadrži veze do sadržanih listova, postavke sigurnosti dokumenta i metapodatke dokumenta. Pored navedenih, ova klasa uključuje mnoge druge korisne metode za obradu primljenih podataka. Neki od njih će biti opisani u nastavku.
getSheetCount() - vratiće broj listova u knjizi;
getSheetNames() - Vraća listu svih listova u radnoj svesci, indeksirajući ih redosledom kojim se njihove "kartice" pojavljuju kada se otvore u MS Excel-u (ili drugim programima za tabelarne proračune);
getSheet(N) - koristi se za pristup listu po indeksu. Indeks pozicije (N) predstavlja redosled kojim se kartice radnog lista prikazuju kada je radna sveska otvorena u MS Excel-u (ili drugim programima za tabelarne proračune);
getSheetByName(list_name) - metoda se koristi za pristup listu po imenu (list_name);
getActiveSheet() - Ova metoda vam omogućava da direktno pristupite aktivnom listu dokumenta. Aktivni list je onaj koji će biti aktivan kada se radna sveska otvori u MS Excel-u (ili drugom odgovarajućem programu za proračunske tablice);
setActiveSheetIndex() i setActiveSheetIndexByName() - Koristeći ove metode, možete označiti list da bude aktivan po njegovom indeksu ili imenu.
Dobivanje vrijednosti ćelije po koordinatama
Da biste dobili vrijednost ćelije, ćelija se prvo mora pronaći pomoću metode getCell. Vrijednost ćelije se može dobiti pomoću sljedeće naredbe:
$objPHPExcel->getActiveSheet()->getCell('B8')->getValue();
U slučaju da su vam potrebne izračunate vrijednosti ćelije, umjesto getValue(), koristite metodu getCalculatedValue():
$objPHPExcel->getActiveSheet()->getCell('B8')->getCalculatedValue();
Dobivanje vrijednosti ćelije po redovima i stupcima
Da biste dobili vrijednost ćelije, ćelija na radnom listu mora se prvo pronaći pomoću metode getCellByColumnAndRow. Vrijednost ćelije se može dobiti pomoću sljedeće naredbe:
$objPHPExcel->getActiveSheet()->getCellByColumnAndRow(1, 8)->getValue();
Zaključak
Ovaj članak govori o glavnim mogućnostima PHPExcel biblioteke u području čitanja Excel datoteka. Pored svega navedenog, ovu biblioteku je moguće fleksibilnije koristiti za rad s različitim parametrima tablice. Za ova pitanja preporučljivo je pogledati dokumentaciju. PHPExcel biblioteka je takođe prilagođena za rad sa drugim tipovima datoteka, kao što je Excel (BIFF). XLS, Excel 2007 (OfficeOpenXML). XLSX, CSV, Libre / OpenOffice Calc. ODS, Gnumeric, PDF i HTML.