PHPExcel Зробити жирним перший рядок


76

Я намагаюся зробити клітинки в першому рядку напівжирними.

Це метод, який я створив для цієї мети.

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


1
це робить усі рядки напівжирними чи ні якими?
Bhavik Shah

ви пробували повторити $ cell_name? це правильне ім'я комірки?
Bhavik Shah

Назви комірок @BhavikShah правильні.
Ракеш

чувак, спробуй збільшити розмір шрифту. Спробуй. Не впевнений.
Bhavik Shah

1
перевірити це . Це може вам допомогти.
Bhavik Shah

Відповіді:


123

Спробуйте це для діапазону комірок:

$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 );

сподівання, що допомагає


4
Ні, просто А1 або А1: В1 для 2 клітинок
Стівен Скотт


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

Таким чином ви отримаєте повний перший рядок


як встановити мій третій рядок напівжирним шрифтом?
Divyesh Jesadiya

1
Попрацював для мене - 2: 2 поставив весь другий ряд жирним. Також getStyle (2) працював у мене.
Змастіть

19

Припустимо, що заголовки знаходяться в першому рядку аркуша, починаючи з А1, і ви знаєте, скільки їх є, це було моє рішення:

$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);

13

Використовуй це:

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

10

Ось деякі поради , щоб зробити ваші клітини 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);

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

Я виявив, що це робоче рішення, ви можете замінити два екземпляри 1на номер рядка. У HighestDataColumnфункції повертає наприклад C або Z, це дає вам останній / високий стовпець , який знаходиться в листі , що містять будь - які дані. Існує також getHighestColumn(), що одна включала б клітинки, які є порожніми, але мають стиль або є частиною інших функціональних можливостей.


2

Це перебирає змінну кількість стовпців певного рядка, який у цьому випадку є 1-м рядком:

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

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

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

1

Спробуйте це

    $ objPHPExcel = новий PHPExcel ();
    $ objPHPExcel-> getProperties () -> setCreator ("Маартен Балліо")
                                 -> setLastModifiedBy ("Маартен Балліо")
                                 -> setTitle ("Тестовий документ Office 2007 XLSX")
                                 -> setSubject ("Тестовий документ Office 2007 XLSX")
                                 -> setDescription ("Тестовий документ для Office 2007 XLSX, створений за допомогою класів PHP.")
                                 -> setKeywords ("office 2007 openxml php")
                                 -> setCategory ("Файл результатів тесту");
    $ objPHPExcel-> setActiveSheetIndex (0);
    $ аркуш = $ objPHPExcel-> getActiveSheet ();
    $ sheet-> setCellValue ('A1', 'No');
    $ sheet-> setCellValue ('B1', 'Job ID');
    $ sheet-> setCellValue ('C1', 'Дата завершення роботи');
    $ sheet-> setCellValue ('D1', 'Дата архівування роботи');
    $ styleArray = масив (
        'font' => масив (
        'bold' => правда
        )
    );
    $ аркуш-> getStyle ('A1') -> applyFromArray ($ styleArray);
    $ аркуш-> getStyle ('B1') -> applyFromArray ($ styleArray);
    $ аркуш-> getStyle ('C1') -> applyFromArray ($ styleArray);
    $ аркуш-> getStyle ('D1') -> applyFromArray ($ styleArray);
    $ аркуш-> getPageSetup () -> setRowsToRepeatAtTopByStartAndEnd (1, 1);
    

Це дасть мені вихід, як показано нижче посилання. ( Https://www.screencast.com/t/ZkKFHbDq1le )


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.