Как центрировать текст в объединенной ячейке PHPExcel

Как центрировать текст «тест»?

Это мой код:

<?php /** Error reporting */ error_reporting(E_ALL); ini_set('display_errors', TRUE); ini_set('display_startup_errors', TRUE); date_default_timezone_set('Europe/London'); /** Include PHPExcel */ require_once '../Classes/PHPExcel.php'; $objPHPExcel = new PHPExcel(); $sheet = $objPHPExcel->getActiveSheet(); $sheet->setCellValueByColumnAndRow(0, 1, "test"); $sheet->mergeCells('A1:B1'); $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007'); $objWriter->save("test.xlsx"); 

Вывод документа Excel:

введите описание изображения здесь

если вы хотите выровнять только эти ячейки, вы можете сделать что-то вроде этого:

  $style = array( 'alignment' => array( 'horizontal' => PHPExcel_Style_Alignment::HORIZONTAL_CENTER, ) ); $sheet->getStyle("A1:B1")->applyFromArray($style); 

Но, если вы хотите применить этот стиль ко всем ячейкам, попробуйте следующее:

  $style = array( 'alignment' => array( 'horizontal' => PHPExcel_Style_Alignment::HORIZONTAL_CENTER, ) ); $sheet->getDefaultStyle()->applyFromArray($style); 
 <?php /** Error reporting */ error_reporting(E_ALL); ini_set('display_errors', TRUE); ini_set('display_startup_errors', TRUE); date_default_timezone_set('Europe/London'); /** Include PHPExcel */ require_once '../Classes/PHPExcel.php'; $objPHPExcel = new PHPExcel(); $sheet = $objPHPExcel->getActiveSheet(); $sheet->setCellValueByColumnAndRow(0, 1, "test"); $sheet->mergeCells('A1:B1'); $sheet->getActiveSheet()->getStyle('A1:B1')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007'); $objWriter->save("test.xlsx"); ?> 

Решение состоит в том, чтобы установить стиль ячейки через эту функцию:

 $sheet->getStyle('A1')->getAlignment()->applyFromArray( array('horizontal' => PHPExcel_Style_Alignment::HORIZONTAL_CENTER,) ); 

Полный код

 <?php /** Error reporting */ error_reporting(E_ALL); ini_set('display_errors', TRUE); ini_set('display_startup_errors', TRUE); date_default_timezone_set('Europe/London'); /** Include PHPExcel */ require_once '../Classes/PHPExcel.php'; $objPHPExcel = new PHPExcel(); $sheet = $objPHPExcel->getActiveSheet(); $sheet->setCellValueByColumnAndRow(0, 1, "test"); $sheet->mergeCells('A1:B1'); $sheet->getStyle('A1')->getAlignment()->applyFromArray( array('horizontal' => PHPExcel_Style_Alignment::HORIZONTAL_CENTER,) ); $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007'); $objWriter->save("test.xlsx"); 

введите описание изображения здесь