logo

INTERNETNE STORITVE

- IZDELAVA SPLETNIH STRANI - OBLIKOVANJE - PROGRAMIRANJE DODATKOV

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

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

Dodaj komentar