如何使用 PHPExcel 有条件地格式化重复值

How to conditionally format duplicate values with PHPExcel

我正在尝试使用 PHPExcel.

为重复值设置条件格式

class PHPExcel_Style_Conditional 导出了 Excel 中几乎所有可用的条件,例如 OPERATOR_GREATERTHANOPERATOR_LESSTHAN 等,但我找不到任何东西像这样格式化重复值:

我知道,我可以自己检查重复项并相应地格式化它们,但是为此使用 Excel 自己的功能集会更加优雅。

有人知道怎么做吗?

深入研究 PHPExcel 的代码后,我发现尚不支持此条件类型。

所以我自己添加了它并为它创建了一个拉取请求:PHPExcel - PR: Add support for conditionally formatting duplicate values

我会在合并后立即更新此答案。

如果您正在住院,您可以暂时自行执行 PR 中的两个(非常小的)更改。之后,您可以将重复值的条件格式添加到您的 Excel 工作表中,如下所示:

$conditional = new PHPExcel_Style_Conditional();
$conditional->setConditionType(PHPExcel_Style_Conditional::CONDITION_DUPLICATEVALUES);
$conditional->getStyle()->getFont()->getColor()->setARGB(PHPExcel_Style_Color::COLOR_RED);

$style = $sheet->getStyle('A1:A10');

$conditionalStyles = $style->getConditionalStyles();

array_push($conditionalStyles, $conditional);
$style->setConditionalStyles($conditionalStyles);