【问题标题】:Set Background cell color in PHPExcel在 PHPExcel 中设置背景单元格颜色
【发布时间】:2011-10-10 00:54:55
【问题描述】:

在 PHPExcel 中创建 XLS 文档时如何为活动单元格设置特定颜色?

【问题讨论】:

  • 我用 Muntashir Akon 的解决方案完成了它。请参阅下面的 33 票(现在)。

标签: phpexcel


【解决方案1】:
$sheet->getStyle('A1')->applyFromArray(
    array(
        'fill' => array(
            'type' => PHPExcel_Style_Fill::FILL_SOLID,
            'color' => array('rgb' => 'FF0000')
        )
    )
);

来源:http://bayu.freelancer.web.id/2010/07/16/phpexcel-advanced-read-write-excel-made-simple/

【讨论】:

  • 截至 2013 年 10 月 17 日,这是不正确的语法。我已经编辑以反映正确的语法。
  • 如何在 Excel Laravel 库中设置背景颜色?
【解决方案2】:
function cellColor($cells,$color){
    global $objPHPExcel;

    $objPHPExcel->getActiveSheet()->getStyle($cells)->getFill()->applyFromArray(array(
        'type' => PHPExcel_Style_Fill::FILL_SOLID,
        'startcolor' => array(
             'rgb' => $color
        )
    ));
}

cellColor('B5', 'F28A8C');
cellColor('G5', 'F28A8C');
cellColor('A7:I7', 'F28A8C');
cellColor('A17:I17', 'F28A8C');
cellColor('A30:Z30', 'F28A8C');

【讨论】:

  • 你的函数没问题,但是你使用的是全局的,这是一个真正的错误……你应该利用 PHP5 的特性。相反,您可以尝试使用 lambda 函数,例如 eval.in/39136 :)
【解决方案3】:

这段代码应该适合你:

 $PHPExcel->getActiveSheet()
        ->getStyle('A1')
        ->getFill()
        ->setFillType(PHPExcel_Style_Fill::FILL_SOLID)
        ->getStartColor()
        ->setRGB('FF0000')

但如果您一遍又一遍地使用它,我建议您使用applyFromArray

【讨论】:

  • 这个解决方案对我有用。我尝试 applyFromArray,但没有任何反应。
【解决方案4】:

现在applyFromArray 似乎有一个错误,它不接受颜色,但这对我有用:

$objPHPExcel
    ->getActiveSheet()
    ->getStyle('A1')
    ->getFill()
    ->getStartColor()
    ->setRGB('FF0000');

【讨论】:

  • 虽然它是更优雅的解决方案(因为我更喜欢 OOP 方式)但它对我不起作用:/ 使用 @user198003 提供的解决方案
【解决方案5】:

这总是在运行!

$sheet->getActiveSheet()->getStyle('A1')->getFill()->getStartColor()->setRGB('FF0000');

【讨论】:

  • 在某些 php 版本中不能在属性类处换行。旧版本。
  • 重要!比像 $sheet 的 $objPHPExcel 是对象类 PHPExcel 的定义。您需要像实例化一样使用(在 new PHPExcel() 定义)。
  • $objPHPExcel->getActiveSheet()->getStyle('A'.$row.':G'.$row)->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID)-> getStartColor()->setRGB('FF0000');
【解决方案6】:

PHPSpreadsheetPHPExcel 的最新版本中,您可以这样做

$spreadsheet = new Spreadsheet();

$spreadsheet->getActiveSheet()->getStyle('A1:F1')->applyFromArray([
    'fill' => [
            'fillType' => Fill::FILL_SOLID,
            'startColor' => [
                'argb' => 'FFDBE2F1',
            ]           
    ],
]);

替代方法:

$spreadsheet->getActiveSheet()
    ->getStyle('A1:F1')
    ->getFill()
    ->setFillType(Fill::FILL_SOLID)
    ->getStartColor()->setARGB('FFDBE2F1');

【讨论】:

    【解决方案7】:
    $objPHPExcel
    ->getActiveSheet()
    ->getStyle('A1')
    ->getFill()
    ->setFillType(PHPExcel_Style_Fill::FILL_SOLID)
    ->getStartColor()
    ->setRGB('colorcode'); //i.e,colorcode=D3D3D3
    

    【讨论】:

      【解决方案8】:
      $objPHPExcel
          ->getActiveSheet()
          ->getStyle('A1')
          ->getFill()
          ->getStartColor()
          ->getRGB();
      

      【讨论】:

        【解决方案9】:
          $objPHPExcel->getActiveSheet()->getStyle('B3:B7')->getFill()
        ->setFillType(PHPExcel_Style_Fill::FILL_SOLID)
        ->getStartColor()->setARGB('FFFF0000');
        

        它在文档中,位于此处:https://github.com/PHPOffice/PHPExcel/wiki/User-Documentation-Overview-and-Quickstart-Guide

        【讨论】:

          【解决方案10】:

          您可以轻松地在单元格和行上应用颜色。

          $sheet->cell(1, function($row) 
          { 
            $row->setBackground('#CCCCCC'); 
          });
          
          $sheet->row(1, ['Col 1', 'Col 2', 'Col 3']); 
          $sheet->row(1, function($row) 
          { 
            $row->setBackground('#CCCCCC'); 
          });
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2019-10-21
            • 2010-11-21
            • 1970-01-01
            • 2016-12-18
            • 1970-01-01
            • 2012-10-06
            • 1970-01-01
            • 2012-06-06
            相关资源
            最近更新 更多