Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在PHPExcel合并单元格中居中显示文本_Php_Phpexcel - Fatal编程技术网

如何在PHPExcel合并单元格中居中显示文本

如何在PHPExcel合并单元格中居中显示文本,php,phpexcel,Php,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 */ req

如何将文本“测试”居中

这是我的代码:

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

解决方案是通过此函数设置单元格样式:

$sheet->getStyle('A1')->getAlignment()->applyFromArray(
    array('horizontal' => PHPExcel_Style_Alignment::HORIZONTAL_CENTER,)
);
完整代码
如果只想对齐此单元格,可以执行以下操作:

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


使用合并列时,我通过使用PHPExcel\u样式对齐::水平\u中心\u连续而不是PHPExcel\u样式对齐::水平\u中心将其居中

我们也可以使用这种方式设置垂直对齐

$style_cell = array(
   'alignment' => array(
       'horizontal' => PHPExcel_Style_Alignment::HORIZONTAL_CENTER,
       'vertical' => PHPExcel_Style_Alignment::VERTICAL_CENTER,
   ) 
); 

使用此单元格将垂直对齐设置为中间。

您也可以设置垂直对齐
setVERTICAL(PHPExcel_样式对齐::PHPExcel_样式对齐::垂直中心)在最新的PhpExcel中它是这样工作的:$style=array('horizontal'=>PhpExcel\u style\u Alignment::horizontal\u CENTER,);也就是说,不使用“alignment”数组键将所有列值居中使用:$objPHPExcelSheet->getDefaultStyle()->getAlignment()->setHorizontal(PHPExcel\u Style\u alignment::HORIZONTAL\u center);对于laravel 5.x,请使用
\PHPExcel\u样式对齐::水平中心
代替
PHPExcel\u样式对齐::水平中心
<?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");
?>
$style_cell = array(
   'alignment' => array(
       'horizontal' => PHPExcel_Style_Alignment::HORIZONTAL_CENTER,
       'vertical' => PHPExcel_Style_Alignment::VERTICAL_CENTER,
   ) 
);