【问题标题】:Conditional formatting rules not attached to cells条件格式规则未附加到单元格
【发布时间】:2023-02-06 18:47:28
【问题描述】:

我正在使用带有以下代码的 PHPSpreadsheet:

// use PhpOffice\PhpSpreadsheet\Style\Conditional as phpC;
// use PhpOffice\PhpSpreadsheet\Style\ConditionalFormatting\Wizard as phpW;
private function conditionWizard($range,$value,$colour){
    $greenStyle = new \PhpOffice\PhpSpreadsheet\Style\Style(false, true);
    $greenStyle->getFill()->setFillType('solid')->getEndColor()->setARGB(\PhpOffice\PhpSpreadsheet\Style\Color::COLOR_GREEN);

    $wizardFactory = new phpW($range);
    $wizard = $wizardFactory->newRule(phpW::TEXT_VALUE);
    $wizard->beginsWith($value, phpW::VALUE_TYPE_CELL)->setStyle($greenStyle);

return $wizard->getConditional();
}

public function conditionEqualorNot(&$workbook){
$conditions = array();

    $range = 'E1:E900';

    $conditions = array(
        $this->conditionWizard($range,'CC1','FFFE0000'),
        $this->conditionWizard($range,'CC2','FF00FF01'),
        $this->conditionWizard($range,'CC3','FFFFFF00'),
    );

    //print'<pre>';print_r($conditions);print'</pre>';exit;

    $workbook->getActiveSheet()->getStyle($range)->setConditionalStyles($conditions);
}

很明显,我正在尝试对单元格范围 E1:E900 应用 3 种不同的查找条件,但出于某种原因,虽然生成了电子表格,但没有设置条件格式设置规则。我尝试了多种不同的组合,但我很难看出哪里出了问题?

奇怪的是,文本颜色似乎是可编辑的,但背景颜色却不是——这正是我特别想要的。

即使应用了 https://github.com/PHPOffice/PhpSpreadsheet/blob/master/samples/ConditionalFormatting/02_Text_Comparisons.php#L209 示例,(例如在黄色样式上)我也只得到蓝色文本 - 没有黄色背景!

【问题讨论】:

    标签: phpspreadsheet


    【解决方案1】:

    参考官方documentation,您可以尝试以下方法:

    getStyle() 也接受单元格范围作为参数。例如,你 可以在一系列单元格上设置红色背景颜色:

    $spreadsheet->getActiveSheet()->getStyle('B3:B7')->getFill()
        ->setFillType(PhpOfficePhpSpreadsheetStyleFill::FILL_SOLID)
        ->getStartColor()->setARGB('FFFF0000');
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-01-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多