Export Excel: création d'onglets par demandeur

This commit is contained in:
Caribana 2017-05-26 13:21:46 +02:00
parent 61c24500af
commit 689c430f7d
2 changed files with 60 additions and 5 deletions

View File

@ -79,7 +79,12 @@ $line = 1;
// Build full row // Build full row
unset($fr); unset($fr);
foreach($header as $key => $val) { foreach($header as $key => $val) {
$fr[$key] = $or[$key]; if($key=='status') {
$fr[$key] = $or[$key]==0 ? 'Finalisé' : 'Ouvert';
}
else {
$fr[$key] = $or[$key];
}
} }
if($line==1) { if($line==1) {
$keys = array_keys ( $header ); $keys = array_keys ( $header );
@ -103,13 +108,64 @@ $objPHPExcel->getActiveSheet()
$line++; $line++;
} }
$mysqli->close();
} }
$objPHPExcel->getActiveSheet()->getStyle('1')->getFont()->setBold(true); $objPHPExcel->getActiveSheet()->getStyle('1')->getFont()->setBold(true);
$objPHPExcel->getActiveSheet()->setTitle('Accréditations'); $objPHPExcel->getActiveSheet()->setTitle('Toutes accréditations');
// ------
// Go again this time sorted by name so we can create a worksheet per requestor
$query = "SELECT * from submissions ORDER BY name";
if ($result = $mysqli->query($query)) {
$line = 1;
/* fetch associative array */
while ($row = $result->fetch_assoc()) {
$ser = $row['formdata'];
$seru = unserialize($ser);
$or = array_merge($row,$seru);
// Build full row
unset($fr);
foreach($header as $key => $val) {
$fr[$key] = $or[$key];
}
if($prevName!=$fr['name']) {
$keys = array_keys ( $header );
// Create new workshet
$myWorkSheet = new PHPExcel_Worksheet($objPHPExcel, $fr['name']);
$objPHPExcel->addSheet($myWorkSheet);
$myWorkSheet
->fromArray(
$keys, // The data to set
NULL, // Array values with this value will not be set
'A1' // Top left coordinate of the worksheet range where
// we want to set these values (default is A1)
);
$myWorkSheet->getStyle('1')->getFont()->setBold(true);
$line=2;
$prevName = $fr['name'];
}
$myWorkSheet
->fromArray(
$fr, // The data to set
NULL, // Array values with this value will not be set
'A'.$line // Top left coordinate of the worksheet range where
// we want to set these values (default is A1)
);
$line++;
}
}
$mysqli->close();
// -------
$objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel); $objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel);
// $objWriter->save(str_replace('.php', '.xlsx', __FILE__));
$filename = 'accred_list.xlsx'; $filename = 'accred_list.xlsx';
$objWriter->save($filename); $objWriter->save($filename);
header('Content-Disposition: attachment; filename="' . $filename . '"'); header('Content-Disposition: attachment; filename="' . $filename . '"');
@ -120,7 +176,6 @@ header('Cache-Control: must-revalidate');
header('Pragma: public'); header('Pragma: public');
$objWriter->save('php://output'); $objWriter->save('php://output');
readfile($filename); readfile($filename);
} }
?> ?>

Binary file not shown.