【发布时间】: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