web-dev-qa-db-ja.com

PHPExcel最初の行を太字にします

最初の行のセルを太字にしようとしています。

これは、その目的のために作成したメソッドです。

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");
 }

問題は、出力Excelファイルのセルが太字ではないことです。

63
Rakesh

セル範囲でこれを試してください:

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

または単一セル

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

それが役立つことを願って

102
Ali Mezal

これを試して

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

そうすれば、最初の行全体を取得できます

28
ednincer

ヘッダーがA1から始まるシートの最初の行にあり、それらの数がわかっていると仮定すると、これが私の解決策でした。

$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

これらは、セルを作成するためのヒントですBoldBig fontItalic

AからLの列があるとします

A1-開始セルです

L1-最後のセルです

$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

これを使って:

$sheet->getStyle('A1:'.$sheet->getHighestColumn().'1')->getFont()->setBold(true);
6
Tom
$objPHPExcel->getActiveSheet()->getStyle("A1:".$objPHPExcel->getActiveSheet()->getHighestDataColumn()."1")->getFont()->setBold(true);

これが実用的なソリューションであることがわかりました。1の2つのインスタンスを行番号に置き換えることができます。 HighestDataColumn関数は、たとえばCまたはZを返します。これは、データを含むシート内の最後/最上位の列を提供します。 getHighestColumn()もあります。これは、空だがスタイリングされているか、他の機能の一部であるセルを含めることです。

4
Arie

これは、特定の行(この場合は最初の行)の可変列数を反復処理します。

$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

これを試して

 $ objPHPExcel = new PHPExcel(); 
 $ objPHPExcel-> getProperties()-> setCreator( "Maarten Balliauw")
-> setLastModifiedBy( "Maarten Balliauw")
-> setTitle( "Office 2007 XLSXテストドキュメント")
-> setSubject( "Office 2007 XLSXテストドキュメント")
-> setDescription( "Office 2007 XLSXのテストドキュメント、生成PHPクラスを使用します。 ")
-> setKeywords(" office 2007 openxml php ")
-> setCategory("テスト結果ファイル "); 
 $ objPHPExcel-> setActiveSheetIndex(0); 
 $ sheet = $ objPHPExcel-> getActiveSheet(); 
 $ sheet-> setCellValue( 'A1'、 'No'); 
 $ sheet-> setCellValue( 'B1'、 'Job ID'); 
 $ sheet-> setCellValue( 'C1'、 'Job completed Date'); 
 $ sheet-> setCellValue( 'D1 '、'ジョブのアーカイブ日 '); 
 $ styleArray = arra y(
 'font' => array(
 'bold' => true 
)
); 
 $ 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) ; 
 

これにより、以下のリンクのような出力が得られます( https://www.screencast.com/t/ZkKFHbDq1le

1
suman chauhan