如何在PHPSpreadsheet中对齐单元格值

时间:2019-03-13 11:54:43

标签: php phpexcel phpspreadsheet

我正在尝试几天,我不知道为什么它不起作用。我想在中间设置单元格值。我的输出如下:-

enter image description here

我的预期输出如下:-

enter image description here

我希望每一列都必须以我为中心 我试过下面的代码:-

$styleArray = [
        'font' => [
            'bold' => true,
        ],
        'alignment' => [
            'horizontal' => \PhpOffice\PhpSpreadsheet\Style\Alignment::VERTICAL_CENTER,
        ],
        'fill' => [
            'fillType' => \PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID,
            'startColor' => [
                'argb' => '0070C0',
            ],
            'endColor' => [
                'argb' => '0070C0',
            ],
        ],
    ];
    $spreadsheet->getDefaultStyle()->getFont()->setSize(10);
    }

我已经尝试了所有其他属性,例如HORIZONTAL_CENTER,RIGHT,LEFT,JUSTIFY..etc。请帮助我该怎么做。

2 个答案:

答案 0 :(得分:5)

您为alignment设置了错误的键(且键数太少)。您要实现的是文本的垂直 水平对齐。

'alignment' => [
    'vertical' => \PhpOffice\PhpSpreadsheet\Style\Alignment::VERTICAL_CENTER,
    'horizontal' => \PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER,
],

PhpSpreadsheet docs

答案 1 :(得分:3)

除了 style array way 之外,您还可以通过方法链接的方式来实现:

$spreadsheet->getActiveSheet()->getStyle($cells)->getAlignment()->setHorizontal($align)

$spreadsheet->getActiveSheet()->getStyle($cells)->getAlignment()->setVertical($align);
  • $cells 应该是单个单元格 ('A1') 或一系列单元格 ('A1:E4')。
  • $align 应该是 \PhpOffice\PhpSpreadsheet\Style\Alignment 类(或其字符串值)的常量,以获得所需的对齐方式。
    • 用于水平对齐:
      • Alignment::HORIZONTAL_GENERAL'general'
      • Alignment::HORIZONTAL_LEFT'left'
      • Alignment::HORIZONTAL_RIGHT'right'
      • Alignment::HORIZONTAL_CENTER'center'
      • Alignment::HORIZONTAL_CENTER_CONTINUOUS'centerContinuous'
      • Alignment::HORIZONTAL_JUSTIFY'justify'
      • Alignment::HORIZONTAL_FILL'fill'
      • Alignment::HORIZONTAL_DISTRIBUTED'distributed'(仅限 Excel2007)
    • 垂直对齐:
      • Alignment::VERTICAL_BOTTOM'bottom'
      • Alignment::VERTICAL_TOP'top'
      • Alignment::VERTICAL_CENTER'center'
      • Alignment::VERTICAL_JUSTIFY'justify'
      • Alignment::VERTICAL_DISTRIBUTED'distributed'(仅限 Excel2007)

这些的来源是 source