【问题标题】:How modify comment in PHPExcel?如何修改 PHPExcel 中的注释?
【发布时间】:2017-01-10 16:16:56
【问题描述】:

我正在 symfony 上开发 PHPExcel 库!我致力于如何在我的 excel 文件的单元格中创建评论。通过文档,我知道如何在我的 excel 文件中创建评论:

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

但它不起作用:(。我尝试了其他但又不起作用......有人可以帮助我吗?或者有修改评论的想法??这会很棒!

【问题讨论】:

    标签: excel symfony phpexcel


    【解决方案1】:
    $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);
        }
    }
    

    没有测试代码,但至少你能明白这一点......

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-03
      • 2020-08-15
      • 2015-10-05
      • 1970-01-01
      • 2016-03-13
      • 1970-01-01
      相关资源
      最近更新 更多