2017-01-10 9 views
1

私はsymfonyでPHPExcelライブラリに取り組んでいます!私はどのように私のExcelファイルのセルにコメントを作成するために働いています。ドキュメントで私はこれでmys excelファイルのコメントをどのように作成できるかを知っています:PHPExcelでコメントを変更するには?

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

それは完璧です!しかし今、私はセルE5のコメントを修正しようとします(コメントは "My first comment :)"です)。私はちょうど別のものでこのコメントを置き換えたいです。 ...誰かが私を助けてくださいか??それをコメントを修正するためのアイデアを持っていることができ、私は他の試みるが、再び動作しない:(ます

$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); 
    } 
} 

がコードをテストしていないが、少なくとも、あなたがポイントを得ることができます...

関連する問題