如何强制评估公式的PHP Excel验证

时间:2013-10-17 09:29:39

标签: php excel-formula phpexcel

我尝试了以下代码来设置PhpExcel的验证

const VALIDATION = '"=Sheet3!$B$2:$B$21"';

$objValidation = $activeSheet->getCell($cellAddress)->getDataValidation();
$objValidation->setType(PHPExcel_Cell_DataValidation::TYPE_LIST);
$objValidation->setErrorStyle( PHPExcel_Cell_DataValidation::STYLE_INFORMATION );
$objValidation->setAllowBlank(true);
$objValidation->setShowDropDown(true);

$objValidation->setFormula1(self::VALIDATION);

但是,当我打开生成的excel时,下拉列表会显示字符串 = Sheet3!$ B $ 2:$ B $ 21 而不是评估范围内的值列表。

这里有什么工作吗?

1 个答案:

答案 0 :(得分:2)

那是因为您将数据验证公式引用为字符串(带双引号),因此它被解释为字符串。

引用的字符串将被视为以逗号分隔的条目列表,这就是为什么'"Item A,Item B,Item C"'将被视为Item AItem BItem C的列表的原因

对于公式,请使用

const VALIDATION = '=Sheet3!$B$2:$B$21';