2013-08-26 159 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表單中進行比較的文本。