PHPExcel

PHPExcel

Lecture ecriture de fichiers Excel en PHP

<?php 
require_once($_SERVER[DOCUMENT_ROOT]."/monchemin/class/PHPExcel.php");
require_once($_SERVER[DOCUMENT_ROOT]."/monchemin/class/PHPExcel/IOFactory.php");
$modele  = $_SERVER[DOCUMENT_ROOT]."/monchemin//modele/excel_modele.xls";
$excelReader = PHPExcel_IOFactory::load($modele); //charge le fichier excel
$excelReader->setActiveSheetIndex(1);   // sélection deuxième onglet (1) facultatif

$excelReader->getActiveSheet()->SetCellValue("C2", "test");   // Mets "test" dans la cellule C2

// acces aux cellule en numérique pratique pour des boucles
$excelReader->getActiveSheet()->setCellValueByColumnAndRow(1, 3, "test");   // Mets "test" dans la cellule B3

// mets une date MySQL dans la cellule C4
$bidon=faire_date($row["DATE"],$excelReader, "C4" );

// force le format texte pour afficher par exemple un code barre
$excelReader->getActiveSheet()->setCellValueExplicit("F5", $row[GENCOD], PHPExcel_Cell_DataType::TYPE_STRING);

// envoi le fichier excel au navigateur
header("Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
header("Content-Disposition: attachment;filename=mon_nouveau_fichier.xls");
header("Cache-Control: max-age=0");
$objWriter = PHPExcel_IOFactory::createWriter($excelReader, "Excel5");
  
$objWriter->save("php://output");

// ou pour sauver dans un fichier sur le disque (sans les header)
$objWriter->save("monfichier.xls");


function faire_date($dt,&$excelReader, $cel ){
	$date1 = explode("-",$dt);
	$time1 = PHPExcel_Shared_Date::FormattedPHPToExcel($date1[0], $date1[1], $date1[2]);
	$excelReader->getActiveSheet()->getStyle($cel)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_DATE_DDMMYYYY);
	$excelReader->getActiveSheet()->SetCellValue($cel, $time1); 
}
?>

Microsoft excel affiche parfois des messages concernant l’intégrité ou la sécurité des fichiers produits. Préparer les modèles avec Libreoffice évite ce problème

quelques liens

exemples de code