Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Generowanie plików XLS
Forum PHP.pl > Forum > Przedszkole
dino6213221
Witam. Mam problem przy generowaniu plików XLS. Oto mój kod:

  1. <?php
  2.  
  3. function random($liczba){
  4. $znaki = '1234567890qwertyuiopasdfghjkklzxcvbnm';
  5. $id = '';
  6. for ($i=0; $i<$liczba; $i++)
  7. {
  8. $id .= $znaki[rand()%(strlen($znaki))];
  9. }
  10. return $id;
  11. }
  12.  
  13.  
  14. function getTime()
  15. {
  16. $a = explode (' ',microtime());
  17. return(double) $a[0] + $a[1];
  18. }
  19.  
  20.  
  21. $Start = getTime();
  22. header('Content-Type: application/vnd.ms-excel');
  23. header('Content-Disposition: attachment;filename="01simple.xls"');
  24. header('Cache-Control: max-age=0');
  25. header ('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); // Date in the past
  26. header ('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT'); // always modified
  27. header ('Cache-Control: cache, must-revalidate'); // HTTP/1.1
  28. header ('Pragma: public'); // HTTP/1.0
  29.  
  30.  
  31. $test='<table border="1">';
  32.  
  33. for($a=0; $a<500; $a++){
  34. $test.='<tr>';
  35. for($b=0; $b<130; $b++){
  36. $test.='<td>'.random(10).'</td>';
  37. }
  38. $test.='</tr>';
  39. }
  40.  
  41.  
  42. $test.='</table>';
  43.  
  44. echo $test;
  45.  
  46. $End = getTime();
  47.  
  48. echo "<br><br>Time taken = ".number_format(($End - $Start),2)." secs";
  49.  
  50. ?>
  51.  


Plik uzupełnia mi się danymi ale podczas włączania wyskakuje błąd:

Plik, który próbujesz otworzyć XXX, ma inny format niż określony przez rozszerzenie pliku. Przed otwarciem pliku sprawdź, czy nie jest uszkodzony i czy pochodzi z zaufanego źródła...

Próbowałem różnych kombinacji header() ale dalej to samo. Podobno da się to rozwiązać poprzez zmianę pewnego klucza w rejestrze ale to nie o to mi chodzi.
Tworzenie pliku jest dużo wolniejsze przez gotowe klasy. Zależy mi na czasie tzn. 650 000 komórek w mniej niż 3 s.

Znacie jakieś rozwiązanie tego problemu?
Crozin
Ale przecież Ty jako zawartość pliku podajesz zwykły tekst/HTML, a Excel korzysta ze swojego formatu - to nie ma prawa działać.

Google: excel file format.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.