2017-01-10 22 views
1

我正在使用symfony上的PHPExcel Library!我研究如何在excel文件的單元格中創建註釋。隨着文檔我知道我可以創建MYS評論Excel文件這樣的:如何在PHPExcel中修改註釋?

$objCommentRichText = $objPHPExcel->getActiveSheet(0)->getComment('E5')->getText()->createTextRun('My first comment :)'); 

而且它的工作完美!但現在我嘗試修改單元格E5中的註釋(誰有評論「我的第一個評論:)」)。我只想用另一個替換這個評論。我嘗試類似的東西:

$objPHPExcel = PHPExcel_IOFactory::load($file);//On lit le fichier avec la librairie excel 
    $sheet = $objPHPExcel->getSheet(0); 


    //$objCommentRichText = $objPHPExcel->getActiveSheet(0)->getComment('E5')->getText()->createTextRun('My first comment :)'); 
    $objCommentRichText = $objPHPExcel->getActiveSheet(0)->getComment('E5')->setText("My 2nd comment");//here I try to modify the comment 

    $objCommentRichText->getFont()->setBold(true); 

    $styleArray = array(
    'font' => array(
     'color' => array('rgb' => 'FF0000'), 
     'name' => 'Verdana' 
    )); 
    $objPHPExcel->getActiveSheet(0)->getStyle('E5')->applyFromArray($styleArray); 

    $writer = PHPExcel_IOFactory::createWriter($objPHPExcel, "Excel2007"); 

但它不工作:(其他我嘗試,但沒有再工作......有人能幫助我,請還是有一個想法修改意見 - 它會?是偉大的!

回答

0
$stringToBeReplaced = 'My first comment :)'; 
$objCommentRichText = $objPHPExcel->getActiveSheet(0)->getComment('E5')->getText(); 
foreach ($objCommentRichText->getRichTextElements() as $richTextRun) { 
    $txt = $richTextRun->getText(); 
    if(strpos($txt, $stringToBeReplaced) !== false) { 
     $richTextRun->setText(str_replace($stringToBeReplaced, "My 2nd comment", $txt); 
     $richTextRun->getFont()->setBold(true); 
    } 
} 

沒有測試的代碼,但至少你可以得到點...

相關問題