2013-08-26 160 views
2

当使用条件格式(条件为搜索文本或其中的一部分)时,我正在生成带有phpexcel的Excel工作表,当我尝试打开生成的工作表时,出现验证错误。与数字完美搭配,少用文字。Excel工作表在条件格式化后损坏

这里是我的代码:

//conditional formatting 
    $objConditional1 = new PHPExcel_Style_Conditional(); 
    $objConditional1->setConditionType(PHPExcel_Style_Conditional::CONDITION_CONTAINSTEXT) 
      ->setOperatorType(PHPExcel_Style_Conditional::OPERATOR_CONTAINSTEXT) 
      ->addCondition('X'); 
$objConditional1->getStyle()->getFont()->getColor()->setARGB(PHPExcel_Style_Color::COLOR_YELLOW); 

    $objConditional3 = new PHPExcel_Style_Conditional(); 
    $objConditional3->setConditionType(PHPExcel_Style_Conditional::CONDITION_CELLIS) 
      ->setOperatorType(PHPExcel_Style_Conditional::OPERATOR_GREATERTHANOREQUAL) 
      ->addCondition('0'); 
    $objConditional3->getStyle()->getFont()->getColor()->setARGB(PHPExcel_Style_Color::COLOR_GREEN); 


$conditionalStyles = $objPHPExcel->getActiveSheet()->getStyle('B2')->getConditionalStyles(); 
array_push($conditionalStyles, $objConditional3); 
array_push($conditionalStyles, $objConditional1); 
$objPHPExcel->getActiveSheet()->getStyle('B2')->setConditionalStyles($conditionalStyles); 

是否有任何人知道如何解决此问题?我做错了什么? 谢谢。

回答

1

据我知道,虽然我还没有与你的情况下测试具体而言,当你尝试应用基于CONTAINSTEXT,条件格式 你不应该叫

'->addCondition('X')' 

(5号线在你的代码),而是调用方法:

->setText('X') 

在您的PHPExcel_Style_Conditional对象上。这是我如何指定要在我的PHPExcel表单中进行比较的文本。