Подтвердить что ты не робот

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, ячейки не выделены жирным шрифтом.

4b9b3361

Ответ 1

попробуйте это

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

надеюсь, что поможет

Ответ 2

Попробуйте это

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

Ответ 3

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

Таким образом вы получите полную первую строку

Ответ 4

Предполагая, что заголовки находятся в первой строке листа, начиная с 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);

Ответ 5

Вот несколько советов, чтобы сделать ваши ячейки Bold, Big font, Italic

Скажем, у меня есть столбцы от 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);

Ответ 6

$objPHPExcel->getActiveSheet()->getStyle("A1:".$objPHPExcel->getActiveSheet()->getHighestDataColumn()."1")->getFont()->setBold(true);

Я нашел это рабочим решением, вы можете заменить два экземпляра 1 номером строки. Функция HighestDataColumn возвращает, например, C или Z, она дает вам последний/самый высокий столбец на листе, содержащем любые данные. Существует также getHighestColumn(), в который будут включены ячейки, которые пусты, но имеют стиль или являются частью других функций.

Ответ 7

Это повторяется через количество столбцов определенной строки, которая в этом случае является первой строкой:

$rownumber = 1;
$row = $this->objPHPExcel->getActiveSheet()->getRowIterator($rownumber)->current();

$cellIterator = $row->getCellIterator();
$cellIterator->setIterateOnlyExistingCells(false);

foreach ($cellIterator as $cell) {
    $cell->getStyle()->getFont()->setBold(true);
}

Ответ 8

Попробуйте это   

    $objPHPExcel = new PHPExcel();
    $objPHPExcel->getProperties()->setCreator("Maarten Balliauw")
                                 ->setLastModifiedBy("Maarten Balliauw")
                                 ->setTitle("Office 2007 XLSX Test Document")
                                 ->setSubject("Office 2007 XLSX Test Document")
                                 ->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.")
                                 ->setKeywords("office 2007 openxml php")
                                 ->setCategory("Test result file");
    $objPHPExcel->setActiveSheetIndex(0);
    $sheet = $objPHPExcel->getActiveSheet();
    $sheet->setCellValue('A1', 'No');
    $sheet->setCellValue('B1', 'Job ID');
    $sheet->setCellValue('C1', 'Job completed Date');
    $sheet->setCellValue('D1', 'Job Archived Date');
    $styleArray = array(
        '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)

Ответ 9

Вы можете попробовать

$objPHPExcel->getActiveSheet()->getStyle(1)->getFont()->setBold(true);