Salut,
Am mai multe tabele html (cu date din MySQL) pe care vreau sa le pun in rapoarte in Excel si Pdf. Pentru Pdf am gasit pe acest site clasa DomPdf. O pot aplica aici? Pentru Excel ce pot folosi? Multumesc.
Rapoarte din PHP in Excel si PDF
-
- Mesaje:430
Rapoarte din PHP in Excel si PDF
MarPlo
Mesaje:4343
Salut
DomPdf e bun pentru a crea documente de tip PDF din PHP. Incearca o versiune noua (din 2014), nu cea de pe site. Adresa:
github.com/dompdf/dompdf
- Sau poti folosi clasa mPDF, de la:
mpdf1.com/
Pentru a crea documente tip Excel cu PHP, incearca clasa PHPExcel, o gasesti la aceste adrese:
phpexcel.codeplex.com/releases/view/119187 (cu documentatie)
github.com/PHPOffice/PHPExcel
- Sau vezi si tutorialul "PHP: Exporting Data to Excel" de la adresa:
the-art-of-web.com/php/dataexport/
DomPdf e bun pentru a crea documente de tip PDF din PHP. Incearca o versiune noua (din 2014), nu cea de pe site. Adresa:
github.com/dompdf/dompdf
- Sau poti folosi clasa mPDF, de la:
mpdf1.com/
Pentru a crea documente tip Excel cu PHP, incearca clasa PHPExcel, o gasesti la aceste adrese:
phpexcel.codeplex.com/releases/view/119187 (cu documentatie)
github.com/PHPOffice/PHPExcel
- Sau vezi si tutorialul "PHP: Exporting Data to Excel" de la adresa:
the-art-of-web.com/php/dataexport/
andras
Mesaje:430
Cum deschid un fisier Excel generat din PHP de pe server daca serverul este pe Linux iar Excel am doar pe local? O cale ar fi sa salvez fisierul pe local si sa-l deschid. Mai este alta cale? Am folosit instructiunea :
(banuiesc ca e forma rudimentara)
Am descarcat PHPExcel dar inca nu stiu s-o folosesc.
Cod: Selectaţi tot
header("Content-Type: application/vnd.ms-excel");
Am descarcat PHPExcel dar inca nu stiu s-o folosesc.
MarPlo
Mesaje:4343
Nu am lucrat cu PHPExcel, nu stiu cum functioneaza.
Fisierul excel creat poate fi deschisc de un program gen Office instalat pe calculatorul personal, deci trebuie salvat. Alta metoda in browser nu cunosc.
Fisierul excel creat poate fi deschisc de un program gen Office instalat pe calculatorul personal, deci trebuie salvat. Alta metoda in browser nu cunosc.
andras
Mesaje:430
Salut,
Folosesc clasa PHPExcel fisierul excellist0.php (simplificat):
Problema e ca merge perfect de pe local, dar de pe server nu vrea, in Opera imi zice:
iar in Chrome imi zice:" Error code: ERR_INVALID_RESPONSE ".
Sa fie oare de la header-ele pe care le-am pus? Instructiunea obliga dechiderea unei ferestre de salvare pe local, iar intructiunea ar trebui sa-mi salveze pe local fisierul excel. Care sa fie cauza? Multumesc.
Folosesc clasa PHPExcel fisierul excellist0.php (simplificat):
Cod: Selectaţi tot
<?php
$objPHPExcel = new PHPExcel();
$objPHPExcel->setActiveSheetIndex(0);
$rowCount = 1;
$objPHPExcel->getActiveSheet()->SetCellValue('C'.$rowCount, $titlu);
$rowCount = 2;
while($row = mysql_fetch_array($result)){
$objPHPExcel->getActiveSheet()->SetCellValue('A'.$rowCount, $row['pn']);
$objPHPExcel->getActiveSheet()->SetCellValue('B'.$rowCount, $row['denumire']);
$objPHPExcel->getActiveSheet()->SetCellValue('C'.$rowCount, $row['um']);
$objPHPExcel->getActiveSheet()->SetCellValue('D'.$rowCount, $row['cantitate']);
$objPHPExcel->getActiveSheet()->SetCellValue('E'.$rowCount, $row['stare0']);
$objPHPExcel->getActiveSheet()->SetCellValue('F'.$rowCount, $row['numeuser']);
$objPHPExcel->getActiveSheet()->SetCellValue('G'.$rowCount, $row['coment']);
$objPHPExcel->getActiveSheet()->SetCellValue('H'.$rowCount, $row['datamodl0']);
$rowCount++;
}
$filename = "list0_" . date('Ymd'). '.xlsx';
$objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel);
header("Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
header('Content-Disposition: attachment;filename="' . $filename.'"');
ob_clean();
$objWriter->save('php://output');
exit();
//header('Location: com?');
?>
Cod: Selectaţi tot
This webpage is not available
The webpage at http://superbit.ro:1002/casco/excellist0.php might be temporarily down or it may have moved permanently to a new web address.
Sa fie oare de la header-ele pe care le-am pus? Instructiunea
Cod: Selectaţi tot
header('Content-Disposition: attachment;filename="' . $filename.'"');
Cod: Selectaţi tot
$objWriter->save('php://output');
MarPlo
Mesaje:4343
Nu cunosc cauza acelei erori, dar incearca sa identifici.
Sterge unul din header(), apoi pe celalalt; chiar poti testa doar cu un simplu "echo" in acel fisier php sa vezi daca functioneaza.
Adaugi treptat cate un fragment de cod si vezi de la care este problema.
Sterge unul din header(), apoi pe celalalt; chiar poti testa doar cu un simplu "echo" in acel fisier php sa vezi daca functioneaza.
Adaugi treptat cate un fragment de cod si vezi de la care este problema.
andras
Mesaje:430
Chiar asa am facut, eroarea apare la oricare din headere, doar daca le scot pe ambele dispare eroarea dar bineinteles, nici programul nu mai face nimic. Mai studiez sa vad care ar fi problema.
MarPlo
Mesaje:4343
Incearca cu aceste headere (toate, dupa ce aplici save() ) pentru fortare download:
Sau faci redirect catre acel fisier excel, cu:
- Nefiind un format care se deschide in browser, va apare fereastra de salvare.
Cod: Selectaţi tot
header('Content-Type: application/vnd.ms-excel; charset=utf-8');
header('Content-Disposition: attachment; filename='. $filename);
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Cache-Control: private',false);
Cod: Selectaţi tot
header('Location: ' . $filename);
andras
Mesaje:430
Am schimbat obiectul de tip Excel2007 cu obiect de tip Excel2003 (Excel5) si merge.Am pus asa in fisier (la sfirsit):
si merge si de pe server. Multumesc!
Cod: Selectaţi tot
<?php
$filename = "list0_" . date('Ymd'). '.xls';
header('Content-type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="' . $filename.'"');
header('Cache-Control: max-age=0');
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
ob_end_clean();
$objWriter->save('php://output');
exit();
?>