PhpSpreadsheet 将单元格的背景颜色设置为白色
Posted
技术标签:
【中文标题】PhpSpreadsheet 将单元格的背景颜色设置为白色【英文标题】:PhpSpreadsheet set background color of cell to white 【发布时间】:2019-07-27 15:40:35 【问题描述】:使用 phpSpreadsheet,我想为 excel 单元格设置白色背景。
$cells = 'A1';
$spreadsheet
->getActiveSheet()
->getStyle($cells)
->getFill()
->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID)
->getStartColor(' #FFFFFF')
->setARGB('#FFFFFF');
即使我设置此白色 RGB 颜色值,此代码也会使单元格背景变黑:#FFFFFF
。
我想要达到的结果:
【问题讨论】:
谁能告诉我这段代码有什么问题.. '$sheet->getStyle('A1:E3')->applyFromArray(array( 'fill' => array( 'type' = > 填充::FILL_SOLID, 'color' => array('rgb' => 'E5E4E2' ) ));' 【参考方案1】:当您为 PhpSpreadsheet 指定 ARGB 时,您不必包含 #
符号。这些解决方案将能够将单元格背景设置为白色:
逐个单元格
$spreadsheet
->getActiveSheet()
->getStyle($cells)
->getFill()
->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID)
->getStartColor()
->setARGB('ffffff');
单元格范围
$spreadsheet
->getActiveSheet()
->getStyle('A1:A5')
->getFill()
->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID)
->getStartColor()
->setARGB('ffffff');
【讨论】:
【参考方案2】:通过使用样式数组一次设置几个样式:
styleArray = array(
'borders' => array(
'outline' => array(
'borderStyle' => Border::BORDER_THICK,
'color' => array('argb' => '00000000'),
),
),
'fill' => array(
'fillType' => Fill::FILL_SOLID,
'startColor' => array('argb' => 'FF4F81BD')
)
);
$spreadsheet->getActiveSheet()->applyFromArray($styleArray);
在某些示例中,我们找到了“fill”而不是“fillType”。也许这取决于 phpSpreadsheet 的版本。另一个变体是 'color' 而不是 'startColor'。
【讨论】:
以上是关于PhpSpreadsheet 将单元格的背景颜色设置为白色的主要内容,如果未能解决你的问题,请参考以下文章