Pagina 1 din 1

Rapoarte din PHP in Excel si PDF

Scris: Lun Mar 09, 2015
de andras
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

Scris: Mar Mar 10, 2015
de MarPlo
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/

Rapoarte din PHP in Excel si PDF

Scris: Mar Mar 10, 2015
de andras
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 :

Cod: Selectaţi tot

 header("Content-Type: application/vnd.ms-excel");
(banuiesc ca e forma rudimentara)
Am descarcat PHPExcel dar inca nu stiu s-o folosesc.

Rapoarte din PHP in Excel si PDF

Scris: Mar Mar 10, 2015
de MarPlo
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.

Rapoarte din PHP in Excel si PDF

Scris: Mie Mar 11, 2015
de andras
Salut,
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?');
?>
Problema e ca merge perfect de pe local, dar de pe server nu vrea, in Opera imi zice:

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. 
iar in Chrome imi zice:" Error code: ERR_INVALID_RESPONSE ".
Sa fie oare de la header-ele pe care le-am pus? Instructiunea

Cod: Selectaţi tot

header('Content-Disposition: attachment;filename="' . $filename.'"');
obliga dechiderea unei ferestre de salvare pe local, iar intructiunea

Cod: Selectaţi tot

$objWriter->save('php://output');
ar trebui sa-mi salveze pe local fisierul excel. Care sa fie cauza? Multumesc.

Rapoarte din PHP in Excel si PDF

Scris: Mie Mar 11, 2015
de MarPlo
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.

Rapoarte din PHP in Excel si PDF

Scris: Mie Mar 11, 2015
de andras
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.

Rapoarte din PHP in Excel si PDF

Scris: Mie Mar 11, 2015
de MarPlo
Incearca cu aceste headere (toate, dupa ce aplici save() ) pentru fortare download:

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);
Sau faci redirect catre acel fisier excel, cu:

Cod: Selectaţi tot

header('Location: ' . $filename);
- Nefiind un format care se deschide in browser, va apare fereastra de salvare.

Rapoarte din PHP in Excel si PDF

Scris: Mie Mar 11, 2015
de andras
Am schimbat obiectul de tip Excel2007 cu obiect de tip Excel2003 (Excel5) si merge.Am pus asa in fisier (la sfirsit):

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(); 
?>
si merge si de pe server. Multumesc!