18

我正在将此代码用于 E 列数据集以右对齐但它没有显示我的效果

$objPHPExcel->getActiveSheet()
    ->getStyle('E')
    ->getAlignment()
    ->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_RIGHT);

如果我写 E6 而不是“E”,那么它会向右显示 E6 单元格数据。

$objPHPExcel->getActiveSheet()
    ->getStyle('E6')
    ->getAlignment()
    ->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_RIGHT);
4

4 回答 4

49

你是对的:PHPExcel 不支持行和列样式。

单元格样式是,但您也可以通过一系列单元格设置样式:

$objPHPExcel->getActiveSheet()
    ->getStyle('E1:E256')
    ->getAlignment()
    ->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_RIGHT);
于 2012-11-09T12:18:32.047 回答
11

由于没有人解释如何设置整个列的样式,这是问题的一部分,这里是代码:

$lastrow = $objPHPExcel->getActiveSheet()->getHighestRow();

$objPHPExcel->getActiveSheet()
        ->getStyle('E1:E'.$lastrow)
        ->getAlignment()
        ->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_RIGHT);
于 2015-10-13T08:40:01.650 回答
8

试试这个代码。它运作良好。我已经确认。

 $activeSheet = $phpExcelObject->getActiveSheet();
    //..
    //...
     $activeSheet->getStyle("E")
                 ->getAlignment()
                 ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_RIGHT);

此代码将 E 列水平向右对齐

于 2014-09-18T07:28:39.767 回答
0

我在尝试将某些数字格式应用于列时也确认了这一点:您不能将样式应用于列 - getStyle('E'),您必须指定范围 - getStyle('E1:E50')

$objPHPExcel->getActiveSheet()->fromArray($row_array, NULL, 'A2');
$rows = count($row_array);
$objPHPExcel->getActiveSheet()->getStyle('C2:C'.$rows)->getNumberFormat()->setFormatCode('000000000');

此代码将用零填充 C 列中的数字

于 2013-05-28T00:51:25.093 回答