T&R splet blog o spletnih storitvah. Razgaljamo tehnologijo!

reference spletnih strani
10th June

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:

PHP:
  1. // New instance of excel writer
  2. require_once "Spreadsheet/Excel/Writer.php";
  3. $xls = new Spreadsheet_Excel_Writer('created_test.xls');
  4. $xls->setVersion(8);
  5. $sheet = & $xls->addWorksheet('test_worksheet');
  6. $sheet->setInputEncoding('UTF-8');
  7.  
  8. //Append data
  9. $sheet->writeString(0, 0, "Prvi stolpec");
  10. $sheet->writeString(0, 1, "Drugi stolpec");
  11. $sheet->writeString(0, 2, "Tretji stolpec");
  12. $sheet->writeString(0, 3, "Četrti stolpec");
  13. $sheet->writeString(0, 4, "Datum");
  14.  
  15. //Set column width (if you set width for one column, all next column will inherit this attribute)
  16. $sheet->setColumn(0, 0, 9.14);
  17. $sheet->setColumn(0, 1, 11.14);
  18. $sheet->setColumn(0, 2, 29.86);
  19. $sheet->setColumn(0, 3, 8.57);
  20. $sheet->setColumn(0, 4, 15.57);
  21.  
  22. // Set row height
  23. $sheet->setRow(0, 15.75);
  24.  
  25. // Create date format
  26. $date_format =& $xls->addFormat();
  27. $date_format->setNumFormat('date');
  28.  
  29. //Add test data
  30. $data = array(100, 200, 300, 400, '21-06-1987');
  31.  
  32. for ($j=1; $j <10; $j++) {
  33.     for ($i=0; $i<5; $i++) {
  34.         // Add date format
  35.         if ($i == 4) {
  36.             $sheet->writeString($j, $i, $data[$i], $date_format);
  37.         // Write integer
  38.         } else {
  39.             $sheet->writeNumber($j, $i, $data[$i]+$j+$i);
  40.         }
  41.     }
  42. }
  43.  
  44. // Usage of some more advanced features
  45. $xls->setCustomColor(10, 128, 128, 128); // Index of color -> 10
  46.  
  47. // Creating new format
  48. $gray_bg_white_content = & $xls->addFormat();
  49. $gray_bg_white_content->setColor('white'); // font color
  50. $gray_bg_white_content->setFgColor(10); // use above created custom color for background color
  51. $gray_bg_white_content->setSize(10); // font size
  52. $gray_bg_white_content->setBold(); // make it bold
  53. $gray_bg_white_content->setFontFamily('Verdana');
  54. $gray_bg_white_content->setBottom(1); // bottom border
  55. $gray_bg_white_content->setTop(1); // top border
  56. $gray_bg_white_content->setRight(1); // right border
  57. $gray_bg_white_content->setAlign('left'); // left aligned
  58.  
  59. // Create sum formula
  60. $sheet->writeFormula(11, 0, '=SUM(A3:A9)', $gray_bg_white_content);
  61.  
  62. // Write email
  63. $sheet->writeUrl(13, 0, 'mailto:info@trsplet.com', 'info@trsplet.com');
  64.  
  65. // Write URL
  66. $sheet->writeUrl(15,0, 'http://www.trsplet.com', 'www.trsplet.com');
  67.  
  68. // Insert picture
  69. $sheet->insertBitmap(17, 0, 'trspletlogo.bmp', 20, 20, 1, 1);
  70.  
  71. //Save file
  72. $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:
Kreiranje Excel računa s pomočjo PHP-ja

Zaradi uporabe PEAR paketa je na nekaterih PHP inštalacijah potrebno nastaviti direktno pot do PEAR-a imenika:

PHP:
  1. $cSeparator = (PHP_SHLIB_SUFFIX == 'dll') ? ';' : ':';
  2. define('INCLUDE_SEPARATOR', $cSeparator);
  3. define('FOLDER_SITE', $_SERVER['REQUEST_URI']);
  4. define('PEAR_FOLDER', 'PEAR/');
  5.  
  6. // set in ini, else PEAR gets lost
  7. ini_set('include_path', '.'.INCLUDE_SEPARATOR . FOLDER_SITE . INCLUDE_SEPARATOR . PEAR_FOLDER);

Ž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:

Datoteke:


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 ...

Deli s skupnostjo:

  • Print
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google Bookmarks

Podobni članki:

  1. Preprosta skripta – kreiranje Excel datoteke iz PHP tabele/array
  2. PHP – pretvorba Excel datoteke v .txt datoteko – Excel to txt converter
  3. PHP – branje Excel (.xls) datoteke – Excel UTF8 branje
  4. PHP – Kreiranje PDF datoteke – DOMPDF – TCPDF
  5. Shrani datoteko / Odpri datoteko dialog – download center (mime-type, Content-type, Content-Disposition)
  6. MySQL kreiranje tabele s SELECT stavkom
  7. Dinamično kreiranje / Upravljanje slik
  8. PHP – kako ugotoviti tip datoteke (get file extension type)
  9. Absolutna / relativna pot do imenika – datoteke
  10. Dodatek za pisanje kode (PHP, MySQL, Javascript itd…)

5x komentirano na “PHP – Kreiranje Excel datoteke – Pisanje v Excel datoteko – PHP – xls”

  1. Roky je napisal:

    Odlična stvar za novejše verzije Excel-a je PHPExcel.

  2. Carli je napisal:

    Fajn!

    Ampak kdo danes želi račun v excelu in ne v pdfju ... :D

    Drugače pa fajn posta o teh excelih, mogoče bo kdaj celo uporabno ... :D

  3. Roky je napisal:

    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:)

  4. Preprosta skripta - kreiranje Excel datoteke iz PHP tabele/array | .: TRSplet - internetne storitve :. je napisal:

    [...] 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 [...]

  5. PHP - Kreiranje PDF datoteke - DOMPDF - TCPDF | .: TRSplet - internetne storitve :. je napisal:

    [...] 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 [...]

Dodaj komentar