J'essaie d'ajouter une image de logo sur une feuille de calcul Excel générée à l'aide de la liste Code ci-dessous, mais pour une raison quelconque, il ne fait rien
$objReader = PHPExcel_IOFactory::createReader('Excel2007'); $objPHPExcel = $objReader->load("workbooks/" . $labref . "/" . $labref . ".xlsx"); $objPHPExcel->getActiveSheet(2); $objWorkSheet = $objPHPExcel->createSheet(); $objWorkSheet->setTitle("Sample Summary"); $dir1 = "exclusive_image"; $objDrawing = new PHPExcel_Worksheet_Drawing(); $objDrawing->setName("name"); $objDrawing->setDescription("Description"); $objDrawing->setPath(base_url().'exclusive_image/nqcl.png'); $objDrawing->setCoordinates('A1'); $objDrawing->setWorksheet($objWorkSheet->getActiveSheet(2)); $objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel); $objWriter->save("workbooks/" . $labref . "/" . $labref . ".xlsx");
3 Réponses :
essayer,
Ajout de logo est si simple, essayez ci-dessous le code.
$objPHPExcel = new PHPExcel(); $sheet = $objPHPExcel->setSheetIndexAndTitle(1, "YOUR_SHEET_TITLE"); // first sheet $objDrawing = new PHPExcel_Worksheet_Drawing(); $objDrawing->setName('Logo'); $objDrawing->setDescription('Logo'); $logo = base_path() . '/images/logo.png'; // Provide path to your logo file $objDrawing->setPath($logo); $objDrawing->setOffsetX(8); // setOffsetX works properly $objDrawing->setOffsetY(300); //setOffsetY has no effect $objDrawing->setCoordinates('B1'); $objDrawing->setHeight(75); // logo height $objDrawing->setWorksheet($sheet);
base_path (). '/images/logo.png'; Cela ne peut être que différent pour chaque utilisateur et qui utiliseedignettor peut utiliser FCPath à la place de base_path
Utilisation:
<?php include 'DB.php'; error_reporting(E_ALL); ini_set('include_path', ini_get('include_path').';../Classes/'); include 'PHPExcel.php'; include 'PHPExcel/Writer/Excel2007.php'; $excel = new PHPExcel(); header('Content-Type: application/vnd.ms-excel'); header('Content-Disposition: attachment;filename="your_name.xls"'); header('Cache-Control: max-age=0'); $excel->setActiveSheetIndex(0) ->setCellValue('A1', 'Hello') ->setCellValue('B2', 'world!') ->setCellValue('C1', 'Hello') ->setCellValue('D2', 'world!'); $objDrawing = new PHPExcel_Worksheet_Drawing(); $objDrawing->setName('Logo'); $objDrawing->setDescription('Logo'); $logo = 'images/logo.png'; // Provide path to your logo file $objDrawing->setPath($logo); //setOffsetY has no effect $objDrawing->setCoordinates('E1'); $objDrawing->setHeight(200); // logo height $objDrawing->setWorksheet($excel->getActiveSheet()); // Do your stuff here writer = PHPExcel_IOFactory::createWriter($excel, 'Excel5'); // This line will force the file to download $writer->save('php://output');
Vous avez manqué un signe variable pour la variable d'écrivain sur la deuxième dernière ligne de code