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";
|
||||
}
|
||||
if (!$result = $mysqli->query($query) ) {
|
||||
echo "Table creation failed: (" . $mysqli->errno . ") " . $mysqli->error;
|
||||
echo "Table read failed: (" . $mysqli->errno . ") " . $mysqli->error;
|
||||
die("Argh");
|
||||
}
|
||||
|
||||
@ -166,6 +166,8 @@ die();
|
||||
header("location: accred_list");
|
||||
die();
|
||||
}
|
||||
// Retrieve the name of the original requestor
|
||||
$reqName = $row['name'];
|
||||
}
|
||||
// instantiate a Zebra_Form object
|
||||
$form = new Zebra_Form('form');
|
||||
@ -176,7 +178,7 @@ die();
|
||||
$forWho = $_SESSION['name'];
|
||||
}
|
||||
else {
|
||||
$ti = 'Commande par '.$_SESSION['name'] . ', créée le '.$row['created'];
|
||||
$ti = 'Commande par '.$reqName. ', créée le '.$row['created'];
|
||||
$forWho = $ar['demande_pour'];
|
||||
}
|
||||
if($isAdmin) {
|
||||
|
||||
105
accred_list.php
105
accred_list.php
@ -19,6 +19,9 @@
|
||||
header("location: index?");
|
||||
}
|
||||
|
||||
use PhpOffice\PhpSpreadsheet\IOFactory;
|
||||
use PhpOffice\PhpSpreadsheet\Spreadsheet;
|
||||
|
||||
require_once 'vendor/autoload.php';
|
||||
define('TMP_FILES', "/tmp/"); // temp folder where it stores the files into.
|
||||
|
||||
@ -34,15 +37,15 @@
|
||||
|
||||
if($_GET['o']=='excel') {
|
||||
|
||||
$objPHPExcel = new PHPExcel();
|
||||
$spreadsheet = new Spreadsheet();
|
||||
// Set properties
|
||||
$objPHPExcel->getProperties()->setCreator("Caribana festival");
|
||||
$objPHPExcel->getProperties()->setLastModifiedBy("Caribana festival");
|
||||
$objPHPExcel->getProperties()->setTitle("Accréditations " . $cfg['year']);
|
||||
$objPHPExcel->getProperties()->setSubject("Accréditations " . $cfg['year']);
|
||||
$objPHPExcel->getProperties()->setDescription("Accréditations " . $cfg['year']);
|
||||
$spreadsheet->getProperties()->setCreator("Caribana festival");
|
||||
$spreadsheet->getProperties()->setLastModifiedBy("Caribana festival");
|
||||
$spreadsheet->getProperties()->setTitle("Accréditations " . $cfg['year']);
|
||||
$spreadsheet->getProperties()->setSubject("Accréditations " . $cfg['year']);
|
||||
$spreadsheet->getProperties()->setDescription("Accréditations " . $cfg['year']);
|
||||
|
||||
$objPHPExcel->setActiveSheetIndex(0);
|
||||
$spreadsheet->setActiveSheetIndex(0);
|
||||
|
||||
$query = "select * from submissions";
|
||||
$mysqli = new mysqli($cfg['host'], $cfg['user'],$cfg['pass'], $cfg['name']);
|
||||
@ -101,7 +104,7 @@ $line = 1;
|
||||
}
|
||||
if($line==1) {
|
||||
$keys = array_keys ( $header );
|
||||
$objPHPExcel->getActiveSheet()
|
||||
$spreadsheet->getActiveSheet()
|
||||
->fromArray(
|
||||
$keys, // The data to set
|
||||
NULL, // Array values with this value will not be set
|
||||
@ -111,7 +114,7 @@ $line = 1;
|
||||
$line++;
|
||||
|
||||
}
|
||||
$objPHPExcel->getActiveSheet()
|
||||
$spreadsheet->getActiveSheet()
|
||||
->fromArray(
|
||||
$fr, // The data to set
|
||||
NULL, // Array values with this value will not be set
|
||||
@ -124,9 +127,28 @@ $objPHPExcel->getActiveSheet()
|
||||
|
||||
|
||||
}
|
||||
$objPHPExcel->getActiveSheet()->getStyle('1')->getFont()->setBold(true);
|
||||
$objPHPExcel->getActiveSheet()->setTitle('Toutes accréditations');
|
||||
|
||||
$spreadsheet->getActiveSheet()->getStyle('1')->getFont()->setBold(true);
|
||||
$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
|
||||
@ -165,10 +187,28 @@ $line = 1;
|
||||
}
|
||||
if($prevName!=$fr['name']) {
|
||||
$keys = array_keys ( $header );
|
||||
// Create new workshet
|
||||
$myWorkSheet = new PHPExcel_Worksheet($objPHPExcel, $fr['name']);
|
||||
$objPHPExcel->addSheet($myWorkSheet);
|
||||
$myWorkSheet
|
||||
// Create new worksheet
|
||||
if($prevSheet) {
|
||||
// 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
|
||||
->fromArray(
|
||||
$keys, // The data to set
|
||||
NULL, // Array values with this value will not be 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();
|
||||
|
||||
|
||||
// -------
|
||||
$objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel);
|
||||
$filename = 'accred_list.xlsx';
|
||||
$objWriter->save($filename);
|
||||
header('Content-Disposition: attachment; filename="' . $filename . '"');
|
||||
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('Cache-Control: must-revalidate');
|
||||
header('Pragma: public');
|
||||
$objWriter->save('php://output');
|
||||
readfile($filename);
|
||||
|
||||
$writer = IOFactory::createWriter($spreadsheet, 'Xlsx');
|
||||
$writer->save('php://output');
|
||||
exit();
|
||||
}
|
||||
|
||||
?>
|
||||
|
||||
@ -53,7 +53,10 @@
|
||||
foreach($seru as $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;
|
||||
}
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user