PHP – Kreiranje Excel datoteke – Pisanje v Excel datoteko – PHP – xls
Po pregledu branja Excel datoteke in nato konvertiranja Excel datoteke v .txt datoteko s pomočjo PHP-ja, si poglejmo še kreiranje oz. pisanje PHP podatkov v Excel datoteko. Sam za kreiranje Excel datotek uporabljam PEAR modul oz. paket, ki se imenuje Spreadsheet_Excel_Writer.
Stvar je zelo napredna saj pokriva veliko funkcionalnosti, poglejmo si nekaj primerov uporabe:
-
// New instance of excel writer
-
require_once "Spreadsheet/Excel/Writer.php";
-
$xls = new Spreadsheet_Excel_Writer('created_test.xls');
-
$xls->setVersion(8);
-
$sheet = & $xls->addWorksheet('test_worksheet');
-
$sheet->setInputEncoding('UTF-8');
-
-
//Append data
-
$sheet->writeString(0, 0, "Prvi stolpec");
-
$sheet->writeString(0, 1, "Drugi stolpec");
-
$sheet->writeString(0, 2, "Tretji stolpec");
-
$sheet->writeString(0, 3, "Četrti stolpec");
-
$sheet->writeString(0, 4, "Datum");
-
-
//Set column width (if you set width for one column, all next column will inherit this attribute)
-
$sheet->setColumn(0, 0, 9.14);
-
$sheet->setColumn(0, 1, 11.14);
-
$sheet->setColumn(0, 2, 29.86);
-
$sheet->setColumn(0, 3, 8.57);
-
$sheet->setColumn(0, 4, 15.57);
-
-
// Set row height
-
$sheet->setRow(0, 15.75);
-
-
// Create date format
-
$date_format =& $xls->addFormat();
-
$date_format->setNumFormat('date');
-
-
//Add test data
-
-
for ($j=1; $j <10; $j++) {
-
for ($i=0; $i<5; $i++) {
-
// Add date format
-
if ($i == 4) {
-
$sheet->writeString($j, $i, $data[$i], $date_format);
-
// Write integer
-
} else {
-
$sheet->writeNumber($j, $i, $data[$i]+$j+$i);
-
}
-
}
-
}
-
-
// Usage of some more advanced features
-
$xls->setCustomColor(10, 128, 128, 128); // Index of color -> 10
-
-
// Creating new format
-
$gray_bg_white_content = & $xls->addFormat();
-
$gray_bg_white_content->setColor('white'); // font color
-
$gray_bg_white_content->setFgColor(10); // use above created custom color for background color
-
$gray_bg_white_content->setSize(10); // font size
-
$gray_bg_white_content->setBold(); // make it bold
-
$gray_bg_white_content->setFontFamily('Verdana');
-
$gray_bg_white_content->setBottom(1); // bottom border
-
$gray_bg_white_content->setTop(1); // top border
-
$gray_bg_white_content->setRight(1); // right border
-
$gray_bg_white_content->setAlign('left'); // left aligned
-
-
// Create sum formula
-
$sheet->writeFormula(11, 0, '=SUM(A3:A9)', $gray_bg_white_content);
-
-
// Write email
-
$sheet->writeUrl(13, 0, 'mailto:info@trsplet.com', 'info@trsplet.com');
-
-
// Write URL
-
$sheet->writeUrl(15,0, 'http://www.trsplet.com', 'www.trsplet.com');
-
-
// Insert picture
-
$sheet->insertBitmap(17, 0, 'trspletlogo.bmp', 20, 20, 1, 1);
-
-
//Save file
-
$xls->close();
Kot vidite je moč s Spreadsheet_Excel_Writer paketom ustvariti Excel datoteke, ki vsebujejo več kot le osnovno funkcionalnost. Moramo pa se zavedati, da ustvarjanje dinamične vsebine v Excel datoteki vzame veliko več časa, kot če bi to počeli ročno v Excelu. Naprimer račun:

Zaradi uporabe PEAR paketa je na nekaterih PHP inštalacijah potrebno nastaviti direktno pot do PEAR-a imenika:
-
$cSeparator = (PHP_SHLIB_SUFFIX == 'dll') ? ';' : ':';
-
-
// set in ini, else PEAR gets lost
Žal ima tudi Spreadsheet_Excel_Writer nekaj težav z UTF8, vendar je moč na spletu najdi popravke zato, ki pa žal zaenkrat še niso vključeni v uradno verzijo na PEAR spletni strani. Zadnjo verzijo, ki že vsebuje zgoraj omenjene popravke je moč najti pod datotekami.
Dodatne informacije:
- Spreadsheet_Excel_Writer dokumentacija
- Podoben vodič za kreiranje Excel datoteke s pomočjo PHP-ja
- Kreiranje Excel datotek s pomočjo cakePHP framework-a
- Bug v zvezi z UTF8 problemom - rešitev že vključena v spodnji .rar datoteki
Datoteke:
- PHP skripta, ki dinamično kreira Excel datoteko
- Testni excel, ki je bil ustvarjen z zgoraj omenjeno PHP skripto
- Pear Spreadsheet_Excel_Writer paket z že vključenimi UTF8 popravki
Kakšne so vaše izkušnje z Excel datotekami v povezavi s PHP-jem? Uporabljate druge knjižnice kot jaz? Katere? Vsa vaša mnenja sporočite pod komentarje ...
Podobni članki:
- Preprosta skripta – kreiranje Excel datoteke iz PHP tabele/array
- PHP – pretvorba Excel datoteke v .txt datoteko – Excel to txt converter
- PHP – branje Excel (.xls) datoteke – Excel UTF8 branje
- PHP – Kreiranje PDF datoteke – DOMPDF – TCPDF
- Shrani datoteko / Odpri datoteko dialog – download center (mime-type, Content-type, Content-Disposition)
- MySQL kreiranje tabele s SELECT stavkom
- Dinamično kreiranje / Upravljanje slik
- PHP – kako ugotoviti tip datoteke (get file extension type)
- Absolutna / relativna pot do imenika – datoteke
- Dodatek za pisanje kode (PHP, MySQL, Javascript itd…)



June 10th, 2008 ob 11:46 am
Odlična stvar za novejše verzije Excel-a je PHPExcel.
June 10th, 2008 ob 12:01 pm
Fajn!
Ampak kdo danes želi račun v excelu in ne v pdfju ...
Drugače pa fajn posta o teh excelih, mogoče bo kdaj celo uporabno ...
June 10th, 2008 ob 4:35 pm
Marsikdo dela račun še v Excelu, meni paše ravno to, da ga lahko spreminjaš tudi po tem ko je že geniriran.
Glede uporabnosti, ja tudi jaz redno to uporabljam in potem za nazaj iščem rešitve, zato sem se tut odloču vse dat gor da mam tut lastno referenco kjer lahko takoj uporabim zadevo:)
March 4th, 2009 ob 9:01 pm
[...] smo že o tem kako prebrati Excel in tudi kako ustvariti Excel, v obeh primerih smo dodali podporo za UTF-8. Dodatno smo zatem pregledali še konverzijo Excel [...]
July 9th, 2009 ob 1:31 pm
[...] opažam, da se večkrat zaplete pri generiranju PDF-jev z UTF-8 podporo. Kot smo nekaj časa nazaj pogledali kako kreirati Excel z UTF-8 podporo si bomo danes ogledali še kako kreirati PDF datoteko z UTF-8 [...]