J'essaie PHPExcel et j'obtiens une erreur de sortie lorsque j'exécute mon script:
Erreur fatale: "pause" pas dans le contexte "boucle" ou "commutateur" dans /opt/lampp/htdocs/Xlsphp/test/Classes/PHPExcel/Calculation/Functions.php sur la ligne 581
Je ne sais pas ce que je fais mal dans mon script PHP. Il semble que tout soit correct.
Quelqu'un sait-il comment le résoudre?
Voici mon PHP:
<?php
require_once 'Classes/PHPExcel.php';
require_once 'config.php';
$sql = 'SELECT * FROM tablevalues';
$result = mysqli_query($conn, $sql) or die(mysqli_error($conn));
$fileName = 'test.xls';
// initialise Excel column name
// currently limited to queries with less than 27 columns
$columnArray = array("A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z");
// Instantiate a new PHPExcel object
$objPHPExcel = new PHPExcel();
// Set the active Excel worksheet to sheet 0
$objPHPExcel->setActiveSheetIndex(0);
// Initialise the Excel row number
$rowCount = 1;
// fetch result set column information
$finfo = mysqli_fetch_fields($result);
// initialise columnlenght counter
$columnlenght = 0;
foreach ($finfo as $val) {
// set column header values
$objPHPExcel->getActiveSheet()->SetCellValue($columnArray[$columnlenght++] . $rowCount, $val->name);
}
// make the column headers bold
$objPHPExcel->getActiveSheet()->getStyle($columnArray[0]."1:".$columnArray[$columnlenght]."1")->getFont()->setBold(true);
$rowCount++;
// Iterate through each result from the SQL query in turn
// We fetch each database result row into $row in turn
while ($row = mysqli_fetch_array($result, MYSQLI_NUM)) {
for ($i = 0; $i < $columnlenght; $i++) {
$objPHPExcel->getActiveSheet()->SetCellValue($columnArray[$i] . $rowCount, $row[$i]);
}
$rowCount++;
}
// set header information to force download
header('Content-type: application/vnd.ms-Excel');
header('Content-Disposition: attachment; filename="' . $fileName . '"');
// Instantiate a Writer to create an OfficeOpenXML Excel .xlsx file
// Write the Excel file to filename some_Excel_file.xlsx in the current directory
$objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel);
// Write the Excel file to filename some_Excel_file.xlsx in the current directory
$objWriter->save('php://output');
mysqli_close($conn);
?>
Retirez simplement le "break"; dans le fichier functions.php. Comme break est après l'instruction return, il donne donc une erreur fatale.
La bonne façon de résoudre le problème d'incompatibilité avec les bibliothèques open source tierces serait de:
Dans votre cas, téléchargez simplement PHPExcel depuis github, décompressez et écrasez les anciennes bibliothèques.