90 votes

PHPExcel Mettre la première ligne en gras

J'essaie de mettre en gras les cellules de la première ligne.

Voici 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 que dans le fichier Excel de sortie, les cellules ne sont pas en gras.

142voto

Ali Mezal Points 303

Essayez ceci pour une série de cellules :

$from = "A1"; // or any value
$to = "B5"; // or any value
$objPHPExcel->getActiveSheet()->getStyle("$from:$to")->getFont()->setBold( true );

ou cellule unique

$cell_name = "A1";
$objPHPExcel->getActiveSheet()->getStyle( $cell_name )->getFont()->setBold( true );

J'espère que cela vous aidera

51voto

Sadikhasan Points 4428

Essayez ceci

$objPHPExcel->getActiveSheet()->getStyle('A1:D1')->getFont()->setBold(true);

34voto

ednincer Points 24
$objPHPExcel->getActiveSheet()->getStyle('1:1')->getFont()->setBold(true);

Vous obtiendrez ainsi la première ligne complète

19voto

boojer Points 81

En supposant que les en-têtes se trouvent sur la première ligne de la feuille à partir de A1, et que vous savez combien il y en a, 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);

18voto

Tom Points 309

Utilisez ceci :

$sheet->getStyle('A1:'.$sheet->getHighestColumn().'1')->getFont()->setBold(true);

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X