Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [inne][PHP]Problem z PHPExcel
Forum PHP.pl > Forum > Przedszkole
iksior
Witam mam problem z generowaniem arkusza do xlsa a mianowicie poniższy kod zrzuca każdy rekord z bazy do osobnego arkusza o nazwie tytul, tytul1, tytul2 and so...
Dlaczego się tak dzieje i jak to poprawić questionmark.gif
  1. <?php
  2. include "library/PHPExcel/PHPExcel.php";
  3. include "library/PHPExcel/PHPExcel/Writer/Excel2007.php";
  4. require("connection.php");
  5. connection();
  6. $date = date("Y-M-d");
  7. $quotations = array();
  8. $result = mysql_query(" SELECT * FROM `zlecenia` ");
  9. while ( $row = mysql_fetch_assoc($result) ) {
  10. $quotations[$row["id"]][] = $row;
  11. }
  12. $excel = new PHPExcel;
  13. $excel->getProperties()->setCreator("xxx");
  14. $excel->getProperties()->setLastModifiedBy("xxx");
  15. $excel->getProperties()->setTitle("title");
  16. $excel->removeSheetByIndex(0);
  17. $columns = array("id" => "A",
  18. "tos" => "B",
  19. "lvl" => "C",
  20. "site" => "D",
  21. "equip" => "E",
  22. "godzina" =>"F",
  23. "zleceniodawca" =>"G",
  24. "co_zrobic"=>"H",
  25. "icare"=>"I",
  26. "zleceniobiorca"=>"J",
  27. "telefon"=>"K",
  28. "co_zrobione"=>"L",
  29. "restore"=>"M",
  30. "resolve"=>"N",
  31. "uwagi"=>"O",
  32. "status"=>"P"
  33. ); foreach ( $quotations as $mark => $rows ) {
  34. $sheet = $excel->createSheet();
  35. $sheet->setTitle("tytul");
  36. $sheet->getColumnDimension('A')->setWidth(30);
  37. $sheet->setCellValue("A1", "ID");
  38. $sheet->setCellValue("B1", "Type of service");
  39. $sheet->setCellValue("C1", "Level");
  40. $sheet->setCellValue("D1", "Site");
  41. $sheet->setCellValue("E1", "Equipment");
  42. $sheet->setCellValue("F1", "Godzina");
  43. $sheet->setCellValue("G1", "Zleceniodawca");
  44. $sheet->setCellValue("H1", "Co trzeba zrobic");
  45. $sheet->setCellValue("I1", "Icare");
  46. $sheet->setCellValue("J1", "Zleceniobiorca");
  47. $sheet->setCellValue("K1", "Telefon zleceniobiorcy");
  48. $sheet->setCellValue("L1", "Co zostało zrobione");
  49. $sheet->setCellValue("M1", "Restore Time");
  50. $sheet->setCellValue("N1", "Resolve Time");
  51. $sheet->setCellValue("O1", "Uwagi");
  52. $sheet->setCellValue("P1", "Status"); foreach ($rows as $i => $row) {
  53. foreach ($columns as $key => $sl) {
  54. $sheet->setCellValue($sl . ($i + 2), $row[$key]);
  55. }
  56. }
  57.  
  58. }
  59. $writer = new PHPExcel_Writer_Excel2007($excel);
  60. $writer->save("$date.xlsx");
  61. ?>

Bardzo dziękuje za tak szybkie odpowiedzi niestety sprawdze Wasze propozycje dopiero wieczorem i wtedy napewno klikne pomógł. Pozdrawiam Iksior
mmmmmmm
linie 35 i 36 przenieś przed foreach w linii 34.
-Hunter-
A nie lepiej przed foreach wyrzucić wszystkie linie od 35 do 53? (Bez foreach w linii 53 oczywiście). Poza tym sprawdziłbym strukturę tabeli - jeśli 'id' jest unikalny, to niepotrzebne jest przypisywanie $quotations[$row["id"]][] = $row; - wystarczy $quotations[$row["id"]] = $row;. I wtedy można całkiem wyrzucić foreach z 53 linii.
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.