J'essaie de rendre les cellules de la première rangée audacieuses.
C'est la méthode que j'ai créée à cet effet.
function ExportToExcel($tittles,$Excel_name)
{
$objPHPExcel = new PHPExcel();
$objRichText = new PHPExcel_RichText();
// Set properties
$objPHPExcel->getProperties()->setCreator("SAMPLE1");
$objPHPExcel->getProperties()->setLastModifiedBy("SAMPLE1");
$objPHPExcel->getProperties()->setTitle("SAMPLE1");
$objPHPExcel->getProperties()->setSubject("SAMPLE1");
$objPHPExcel->getProperties()->setDescription("SAMPLE1");
// Add some data
$objPHPExcel->setActiveSheetIndex(0);
$letters = range('A','Z');
$count =0;
$cell_name="";
foreach($tittles as $tittle)
{
$cell_name = $letters[$count]."1";
$count++;
$value = $tittle;
$objPHPExcel->getActiveSheet()->SetCellValue($cell_name, $value);
// Make bold cells
$objPHPExcel->getActiveSheet()->getStyle($cell_name)->getFont()->setBold(true);
}
// Save Excel 2007 file
$objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel);
//$objWriter->save(str_replace('.php', '.xlsx', __FILE__));
$objWriter->save($Excel_name.".xlsx");
}
Le problème est dans le fichier de sortie Excel, les cellules ne sont pas en gras.
Essayez ceci pour la plage de cellules:
$from = "A1"; // or any value
$to = "B5"; // or any value
$objPHPExcel->getActiveSheet()->getStyle("$from:$to")->getFont()->setBold( true );
ou une seule cellule
$cell_name = "A1";
$objPHPExcel->getActiveSheet()->getStyle( $cell_name )->getFont()->setBold( true );
j'espère que ça t'as aidé
Essaye ça
$objPHPExcel->getActiveSheet()->getStyle('A1:D1')->getFont()->setBold(true);
$objPHPExcel->getActiveSheet()->getStyle('1:1')->getFont()->setBold(true);
De cette façon, vous obtenez la première rangée complète
En supposant que les en-têtes figurent sur la première ligne de la feuille à partir de A1 et que vous sachiez combien il en existe, voici ma solution:
$header = array(
'Header 1',
'Header 2'
);
$objPHPExcel = new PHPExcel();
$objPHPExcelSheet = $objPHPExcel->getSheet(0);
$objPHPExcelSheet->fromArray($header, NULL);
$first_letter = PHPExcel_Cell::stringFromColumnIndex(0);
$last_letter = PHPExcel_Cell::stringFromColumnIndex(count($header)-1);
$header_range = "{$first_letter}1:{$last_letter}1";
$objPHPExcelSheet->getStyle($header_range)->getFont()->setBold(true);
Voici quelques conseils pour rendre vos cellules Bold
, Big font
, Italic
Disons que j'ai des colonnes de A
à L
A1
- est votre cellule de départ
L1
_ est votre dernière cellule
$objPHPExcel->getActiveSheet()->getStyle('A1:L1')->getFont()->setBold(true);
$objPHPExcel->getActiveSheet()->getStyle('A1:L1')->getFont()->setSize(16);
$objPHPExcel->getActiveSheet()->getStyle('A1:L1')->getFont()->setItalic(true);
Utilisez ceci:
$sheet->getStyle('A1:'.$sheet->getHighestColumn().'1')->getFont()->setBold(true);
$objPHPExcel->getActiveSheet()->getStyle("A1:".$objPHPExcel->getActiveSheet()->getHighestDataColumn()."1")->getFont()->setBold(true);
J'ai trouvé que cette solution fonctionnait bien. Vous pouvez remplacer les deux instances de 1
Par le numéro de ligne. La fonction HighestDataColumn
renvoie par exemple C ou Z, elle vous indique la dernière colonne/la plus haute colonne de la feuille contenant des données. Il y a aussi getHighestColumn()
, que l'on inclurait les cellules vides mais ayant un style ou faisant partie d'une autre fonctionnalité.
Ceci itère via un nombre variable de colonnes d'une ligne particulière, qui dans ce cas est la 1ère ligne:
$rownumber = 1;
$row = $this->objPHPExcel->getActiveSheet()->getRowIterator($rownumber)->current();
$cellIterator = $row->getCellIterator();
$cellIterator->setIterateOnlyExistingCells(false);
foreach ($cellIterator as $cell) {
$cell->getStyle()->getFont()->setBold(true);
}
Essaye ça
$ objPHPExcel = new PHPExcel (); $ objPHPExcel-> getProperties () -> setCreator ("Maarten Balliauw") -> setLastModifiedBy ("Maarten Balliauw"). ____.] -> setTitle ("Document de test Office 2007 XLSX") -> setSubject ("Document de test Office 2007 XLSX") -> setDescription ("Document de test pour Office 2007 XLSX, généré using PHP classes. ") -> setKeywords (" office 2007 openxml php ") -> setCategory (" Fichier de résultat du test "); $ objPHPExcel-> setActiveSheetIndex (0); $ sheet = $ objPHPExcel-> getActiveSheet (); $ sheet-> setCellValue ('A1', 'Non'); .] $ sheet-> setCellValue ('B1', 'ID de travail'); $ sheet-> setCellValue ('C1', 'Date complétée'); $ sheet-> setCellValue ('D1', 'Date archivée du travail'); $ StyleArray = a rray ( 'font' => tableau ( 'gras' => vrai ) ); $ sheet-> getStyle (' A1 ') -> applyFromArray ($ styleArray); $ Sheet-> getStyle (' B1 ') -> applyFromArray ($ styleArray); $ Sheet-> getStyle (' C1 ') - > applyFromArray ($ styleArray); $ sheet-> getStyle ('D1') -> applyFromArray ($ styleArray); $ sheet-> getPageSetup () -> setRowsToRepeatAtTopByStartAndEnd (1, 1) ;
C’est ce qui m’a permis d’obtenir une sortie comme le lien ci-dessous. ( https://www.screencast.com/t/ZkKFHbDq1le )