web-dev-qa-db-fra.com

PHPExcel Met en gras la première ligne

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.

63
Rakesh

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é

102
Ali Mezal

Essaye ça

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

De cette façon, vous obtenez la première rangée complète

28
ednincer

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);
18
boojer

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);
8
Vivek

Utilisez ceci:

$sheet->getStyle('A1:'.$sheet->getHighestColumn().'1')->getFont()->setBold(true);
6
Tom
$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é.

4
Arie

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);
}
2
datasn.io

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 )

1
suman chauhan