【问题标题】:PHPExcel color to specific rowPHPExcel颜色到特定行
【发布时间】:2015-01-16 10:15:09
【问题描述】:

我目前正在使用 PHPExcel,我正在尝试为 1 个特定行指定颜色,我已经阅读了 Set Background cell color in PHPExcel,并且我已经尝试了所有这些选项。没有运气!

也许我做错了什么,但它是这样的:

           //Table
    $objPHPExcel->setActiveSheetIndex(0)
                ->setCellValue('B2', 'Beller ')
                ->setCellValue('D2', 'Beller nummer')
                ->setCellValue('F2', 'Datum')
                ->setCellValue('H2', 'ontvanger naam')
                ->setCellValue('J2', 'ontvanger nummer')
                ->setCellValue('L2', 'Billing seconds')
                ->setCellValue('N2', 'Direction')
    // array 

                ->setCellValue('B3', 'hi')
                ->setCellValue('D3', 'hi')
                ->setCellValue('F3', 'hi')
                ->setCellValue('H3', 'hi')
                ->setCellValue('J3', 'ontvanger nummer')
                ->setCellValue('L3', 'Billing seconds')
                ->setCellValue('N3', 'Direction');          

                //Werkt niet            }


    // breedte + kopstukken dikgedrukt
    $objPHPExcel->getActiveSheet()->getStyle('B2')->getFont()->setBold(true);
    $objPHPExcel->getActiveSheet()->getStyle('D2')->getFont()->setBold(true);
    $objPHPExcel->getActiveSheet()->getStyle('F2')->getFont()->setBold(true);
    $objPHPExcel->getActiveSheet()->getStyle('H2')->getFont()->setBold(true);
    $objPHPExcel->getActiveSheet()->getStyle('J2')->getFont()->setBold(true);
    $objPHPExcel->getActiveSheet()->getStyle('L2')->getFont()->setBold(true);
    $objPHPExcel->getActiveSheet()->getStyle('N2')->getFont()->setBold(true);
    $objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth(15);
    $objPHPExcel->getActiveSheet()->getColumnDimension('D')->setWidth(15);
    $objPHPExcel->getActiveSheet()->getColumnDimension('F')->setWidth(15);
    $objPHPExcel->getActiveSheet()->getColumnDimension('H')->setWidth(15);
    $objPHPExcel->getActiveSheet()->getColumnDimension('J')->setWidth(20);
    $objPHPExcel->getActiveSheet()->getColumnDimension('L')->setWidth(15);
    $objPHPExcel->getActiveSheet()->getColumnDimension('N')->setWidth(15);
    $objPHPExcel->getActiveSheet()->getStyle('N2')->applyFromArray(
        array(
            'fill' => array(
                'type' => PHPExcel_Style_Fill::FILL_SOLID,
                'color' => array('rgb' => 'E05CC2')
            )
        )

);

它给了我 N2 彩色,但我希望 N 中的所有行都用文本填充,彩色;)

【问题讨论】:

  • 你试过applyFromArray方法吗?
  • 我刚刚做了,它工作但不是只适用于 N2 的所有行,我实际上希望 N 中的所有 FILLED 都被着色编辑我的帖子
  • 另外,在最后一行之前添加:$objPHPExcel->getActiveSheet()->getStyle('N2')->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID);
  • 我删除了它,因为它没有给我任何东西,使用数组方法给我 1 行彩色

标签: php phpexcel


【解决方案1】:

您不能在 PHPExcel 中设置一行,只能设置一个单元格或一系列单元格

$objPHPExcel->getActiveSheet()
    ->getStyle('A1:E1')
    ->getFill()
    ->setFillType(PHPExcel_Style_Fill::FILL_SOLID)
    ->getStartColor()
    ->setARGB('FF808080');

$objPHPExcel->getActiveSheet()
    ->getStyle('A1:E1')
    ->applyFromArray(
        array(
            'fill' => array(
                'type' => PHPExcel_Style_Fill::FILL_SOLID,
                'color' => array('rgb' => 'E05CC2')
            )
        )
    );

将为单元格 A1 到 E1 设置背景填充样式

【讨论】:

  • 问题是,它与 datepick 结果一起工作,如果有人选择一个日期,它会从我在数组中使用的变量返回该日期的所有通话历史记录,问题是我必须着色第 N 行所有已填充的单元格
  • 所有的填充单元格?还是所有的细胞?
  • N 中的所有单元格都填充了数组中的数据。所以想象一下,他们从昨天开始加载通话记录,它有 12 个通话,我想要 12 个以 N 着色的单元格,
  • 在这种情况下,您可以计算出这些值的范围并使用我上面显示的方法;因此,如果您的起始单元格是 N2 并且您有 20 个值,那么范围将是 N2:N21
  • 我怎么知道在哪里停止着色?因为它会根据用户选择的日期以及自选择日期以来的通话次数而变化,我可以使用 count() 函数吗?
猜你喜欢
  • 1970-01-01
  • 2023-03-10
  • 1970-01-01
  • 1970-01-01
  • 2015-10-06
  • 2012-03-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多