понедельник, 19 мая 2008 г.

PHP+Excel быстро генерируем XLS файлы

Данный метод довольно тупой, и работать будет только на ОС Windows с установленным Excel, но лично я им пользуюсь что бы на локалхосте по быстрому создавать xls файлы с нужными мне данными, приведённый ниже пример рекурсивно обрабатывает папку и все данные из html файлов помещает в Excel таблицу, причём каждую в новую ячейку

  1. <?php
  2. $excel = new COM("excel.application");
  3. //Keep Excel invisible
  4. $excel->Visible = 0;
  5. //Create a new workbook
  6. $wkb = $excel->Workbooks->Add();
  7. $sheet = $wkb->Worksheets(1);
  8. //This code adds the text 'Test' on row 2, column 4
  9. $sheet->activate;
  10. $files=array();
  11. $a=1;
  12.         function recursedir($BASEDIR)
  13.         {
  14.                 global $files;
  15.                 $ext = array("html");
  16.                 $files = array();
  17.                 $hndl=opendir($BASEDIR);
  18.                 while($file=readdir($hndl))
  19.                 {
  20.  
  21.             for($i=0;$i<sizeof ($ext);$i++)
  22.                     if(strstr($file, ".".$ext[$i])) $files[]=$file;
  23.                 }
  24.         return $files;
  25.         }
  26.  
  27. // задаём директорию с которую нужно парсить
  28. $BASEDIR="/1/";
  29.  
  30. recursedir($BASEDIR);
  31.  
  32. foreach($files as $file){
  33. $fp = file_get_contents($BASEDIR.$file);
  34. $fp=str_replace("**","\n \n",$fp);
  35. $cell = $sheet->Cells($a,1);
  36. $cell->Activate;
  37. $cell->value =$fp ;
  38. $a++;
  39. }
  40.  
  41. $wkb->SaveAs("C:\excel123.xls");
  42. //Quit MS Excel
  43. $wkb->Close(false);
  44. $excel->Workbooks->Close();
  45. $excel->Quit();
  46. unset($sheet);
  47. unset($excel);
  48. ?></sizeof>

Просто для общего развития, может кому то пригодится.

Здесь можно оставить свои комментарии.

Комментариев нет: