Migration vers phpspreadsheet et fix nom du demandeur
This commit is contained in:
parent
c671fda638
commit
05c0b9a1af
@ -149,7 +149,7 @@ die();
|
|||||||
$query .= " AND UID=$userid";
|
$query .= " AND UID=$userid";
|
||||||
}
|
}
|
||||||
if (!$result = $mysqli->query($query) ) {
|
if (!$result = $mysqli->query($query) ) {
|
||||||
echo "Table creation failed: (" . $mysqli->errno . ") " . $mysqli->error;
|
echo "Table read failed: (" . $mysqli->errno . ") " . $mysqli->error;
|
||||||
die("Argh");
|
die("Argh");
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -166,6 +166,8 @@ die();
|
|||||||
header("location: accred_list");
|
header("location: accred_list");
|
||||||
die();
|
die();
|
||||||
}
|
}
|
||||||
|
// Retrieve the name of the original requestor
|
||||||
|
$reqName = $row['name'];
|
||||||
}
|
}
|
||||||
// instantiate a Zebra_Form object
|
// instantiate a Zebra_Form object
|
||||||
$form = new Zebra_Form('form');
|
$form = new Zebra_Form('form');
|
||||||
@ -176,7 +178,7 @@ die();
|
|||||||
$forWho = $_SESSION['name'];
|
$forWho = $_SESSION['name'];
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
$ti = 'Commande par '.$_SESSION['name'] . ', créée le '.$row['created'];
|
$ti = 'Commande par '.$reqName. ', créée le '.$row['created'];
|
||||||
$forWho = $ar['demande_pour'];
|
$forWho = $ar['demande_pour'];
|
||||||
}
|
}
|
||||||
if($isAdmin) {
|
if($isAdmin) {
|
||||||
|
|||||||
103
accred_list.php
103
accred_list.php
@ -19,6 +19,9 @@
|
|||||||
header("location: index?");
|
header("location: index?");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
use PhpOffice\PhpSpreadsheet\IOFactory;
|
||||||
|
use PhpOffice\PhpSpreadsheet\Spreadsheet;
|
||||||
|
|
||||||
require_once 'vendor/autoload.php';
|
require_once 'vendor/autoload.php';
|
||||||
define('TMP_FILES', "/tmp/"); // temp folder where it stores the files into.
|
define('TMP_FILES', "/tmp/"); // temp folder where it stores the files into.
|
||||||
|
|
||||||
@ -34,15 +37,15 @@
|
|||||||
|
|
||||||
if($_GET['o']=='excel') {
|
if($_GET['o']=='excel') {
|
||||||
|
|
||||||
$objPHPExcel = new PHPExcel();
|
$spreadsheet = new Spreadsheet();
|
||||||
// Set properties
|
// Set properties
|
||||||
$objPHPExcel->getProperties()->setCreator("Caribana festival");
|
$spreadsheet->getProperties()->setCreator("Caribana festival");
|
||||||
$objPHPExcel->getProperties()->setLastModifiedBy("Caribana festival");
|
$spreadsheet->getProperties()->setLastModifiedBy("Caribana festival");
|
||||||
$objPHPExcel->getProperties()->setTitle("Accréditations " . $cfg['year']);
|
$spreadsheet->getProperties()->setTitle("Accréditations " . $cfg['year']);
|
||||||
$objPHPExcel->getProperties()->setSubject("Accréditations " . $cfg['year']);
|
$spreadsheet->getProperties()->setSubject("Accréditations " . $cfg['year']);
|
||||||
$objPHPExcel->getProperties()->setDescription("Accréditations " . $cfg['year']);
|
$spreadsheet->getProperties()->setDescription("Accréditations " . $cfg['year']);
|
||||||
|
|
||||||
$objPHPExcel->setActiveSheetIndex(0);
|
$spreadsheet->setActiveSheetIndex(0);
|
||||||
|
|
||||||
$query = "select * from submissions";
|
$query = "select * from submissions";
|
||||||
$mysqli = new mysqli($cfg['host'], $cfg['user'],$cfg['pass'], $cfg['name']);
|
$mysqli = new mysqli($cfg['host'], $cfg['user'],$cfg['pass'], $cfg['name']);
|
||||||
@ -101,7 +104,7 @@ $line = 1;
|
|||||||
}
|
}
|
||||||
if($line==1) {
|
if($line==1) {
|
||||||
$keys = array_keys ( $header );
|
$keys = array_keys ( $header );
|
||||||
$objPHPExcel->getActiveSheet()
|
$spreadsheet->getActiveSheet()
|
||||||
->fromArray(
|
->fromArray(
|
||||||
$keys, // The data to set
|
$keys, // The data to set
|
||||||
NULL, // Array values with this value will not be set
|
NULL, // Array values with this value will not be set
|
||||||
@ -111,7 +114,7 @@ $line = 1;
|
|||||||
$line++;
|
$line++;
|
||||||
|
|
||||||
}
|
}
|
||||||
$objPHPExcel->getActiveSheet()
|
$spreadsheet->getActiveSheet()
|
||||||
->fromArray(
|
->fromArray(
|
||||||
$fr, // The data to set
|
$fr, // The data to set
|
||||||
NULL, // Array values with this value will not be set
|
NULL, // Array values with this value will not be set
|
||||||
@ -124,9 +127,28 @@ $objPHPExcel->getActiveSheet()
|
|||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
$objPHPExcel->getActiveSheet()->getStyle('1')->getFont()->setBold(true);
|
$spreadsheet->getActiveSheet()->getStyle('1')->getFont()->setBold(true);
|
||||||
$objPHPExcel->getActiveSheet()->setTitle('Toutes accréditations');
|
$spreadsheet->getActiveSheet()->setTitle('Toutes demandes');
|
||||||
|
foreach (range('A','Z') as $col) {
|
||||||
|
$spreadsheet->getActiveSheet()->getColumnDimension($col)->setAutoSize(true);
|
||||||
|
}
|
||||||
|
foreach (range('A','E') as $col) {
|
||||||
|
$spreadsheet->getActiveSheet()->getColumnDimension('A'.$col)->setAutoSize(true);
|
||||||
|
}
|
||||||
|
// Add totals
|
||||||
|
//
|
||||||
|
$highestRow = $spreadsheet->getActiveSheet()->getHighestRow();
|
||||||
|
$coord = 'N' . ($highestRow+2);
|
||||||
|
$spreadsheet->getActiveSheet()->setCellValue($coord, 'TOTAL');
|
||||||
|
foreach(range('O','Z') as $col) {
|
||||||
|
$spreadsheet->getActiveSheet()->setCellValue($col.($highestRow+2), '=SUM('.$col.'2:'.$col.($highestRow).')');
|
||||||
|
}
|
||||||
|
// Do AA
|
||||||
|
$spreadsheet->getActiveSheet()->setCellValue('AA'.($highestRow+2), '=SUM(AA2:AA'.($highestRow).')');
|
||||||
|
// Format the total
|
||||||
|
$spreadsheet->getActiveSheet()->getStyle($coord.':AA'.($highestRow+2))->getFill()
|
||||||
|
->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID)
|
||||||
|
->getStartColor()->setARGB('AAAAAAAA');
|
||||||
|
|
||||||
// ------
|
// ------
|
||||||
// Go again this time sorted by name so we can create a worksheet per requestor
|
// Go again this time sorted by name so we can create a worksheet per requestor
|
||||||
@ -165,9 +187,27 @@ $line = 1;
|
|||||||
}
|
}
|
||||||
if($prevName!=$fr['name']) {
|
if($prevName!=$fr['name']) {
|
||||||
$keys = array_keys ( $header );
|
$keys = array_keys ( $header );
|
||||||
// Create new workshet
|
// Create new worksheet
|
||||||
$myWorkSheet = new PHPExcel_Worksheet($objPHPExcel, $fr['name']);
|
if($prevSheet) {
|
||||||
$objPHPExcel->addSheet($myWorkSheet);
|
// Add totals
|
||||||
|
// //
|
||||||
|
$highestRow = $prevSheet->getHighestRow();
|
||||||
|
$coord = 'N' . ($highestRow+2);
|
||||||
|
$prevSheet->setCellValue($coord, 'TOTAL');
|
||||||
|
foreach(range('O','Z') as $col) {
|
||||||
|
$prevSheet->setCellValue($col.($highestRow+2), '=SUM('.$col.'2:'.$col.($highestRow).')');
|
||||||
|
}
|
||||||
|
// Do AA
|
||||||
|
$prevSheet->setCellValue('AA'.($highestRow+2), '=SUM(AA2:AA'.($highestRow).')');
|
||||||
|
// Format the total
|
||||||
|
$prevSheet->getStyle($coord.':AA'.($highestRow+2))->getFill()
|
||||||
|
->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID)
|
||||||
|
->getStartColor()->setARGB('BBBBBBBB');
|
||||||
|
|
||||||
|
}
|
||||||
|
$prevSheet = $spreadsheet->getActiveSheet();
|
||||||
|
$myWorkSheet = $spreadsheet->createSheet();
|
||||||
|
$myWorkSheet->setTitle($fr['name']);
|
||||||
$myWorkSheet
|
$myWorkSheet
|
||||||
->fromArray(
|
->fromArray(
|
||||||
$keys, // The data to set
|
$keys, // The data to set
|
||||||
@ -192,21 +232,44 @@ $line = 1;
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
foreach (range('A','Z') as $col) {
|
||||||
|
$myWorkSheet->getColumnDimension($col)->setAutoSize(true);
|
||||||
|
}
|
||||||
|
foreach (range('A','E') as $col) {
|
||||||
|
$spreadsheet->getActiveSheet()->getColumnDimension('A'.$col)->setAutoSize(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Put totals on last sheet
|
||||||
|
// Add totals
|
||||||
|
// //
|
||||||
|
$highestRow = $spreadsheet->getActiveSheet()->getHighestRow();
|
||||||
|
$coord = 'N' . ($highestRow+2);
|
||||||
|
$spreadsheet->getActiveSheet()->setCellValue($coord, 'TOTAL');
|
||||||
|
foreach(range('O','Z') as $col) {
|
||||||
|
$spreadsheet->getActiveSheet()->setCellValue($col.($highestRow+2), '=SUM('.$col.'2:'.$col.($highestRow).')');
|
||||||
|
}
|
||||||
|
// Do AA
|
||||||
|
$spreadsheet->getActiveSheet()->setCellValue('AA'.($highestRow+2), '=SUM(AA2:AA'.($highestRow).')');
|
||||||
|
// Format the total
|
||||||
|
$spreadsheet->getActiveSheet()->getStyle($coord.':AA'.($highestRow+2))->getFill()
|
||||||
|
->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID)
|
||||||
|
->getStartColor()->setARGB('AAAAAAAA');
|
||||||
|
|
||||||
$mysqli->close();
|
$mysqli->close();
|
||||||
|
|
||||||
|
|
||||||
// -------
|
// -------
|
||||||
$objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel);
|
|
||||||
$filename = 'accred_list.xlsx';
|
$filename = 'accred_list.xlsx';
|
||||||
$objWriter->save($filename);
|
|
||||||
header('Content-Disposition: attachment; filename="' . $filename . '"');
|
header('Content-Disposition: attachment; filename="' . $filename . '"');
|
||||||
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet; charset=utf-8');
|
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet; charset=utf-8');
|
||||||
header('Content-Length: ' . filesize($filename));
|
// header('Content-Length: ' . filesize($filename));
|
||||||
header('Content-Transfer-Encoding: binary');
|
header('Content-Transfer-Encoding: binary');
|
||||||
header('Cache-Control: must-revalidate');
|
header('Cache-Control: must-revalidate');
|
||||||
header('Pragma: public');
|
header('Pragma: public');
|
||||||
$objWriter->save('php://output');
|
|
||||||
readfile($filename);
|
$writer = IOFactory::createWriter($spreadsheet, 'Xlsx');
|
||||||
|
$writer->save('php://output');
|
||||||
|
exit();
|
||||||
}
|
}
|
||||||
|
|
||||||
?>
|
?>
|
||||||
|
|||||||
@ -54,6 +54,9 @@
|
|||||||
$one[$key] = $val;
|
$one[$key] = $val;
|
||||||
}
|
}
|
||||||
$one['name'] = $row["name"];
|
$one['name'] = $row["name"];
|
||||||
|
if($one['demande_pour'] != $row["name"]) {
|
||||||
|
$one['name'] .= ' / ' . $one['demande_pour'];
|
||||||
|
}
|
||||||
$obj['data'][] = $one;
|
$obj['data'][] = $one;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user