使用 PHPEXCEL 在工作表中添加注释


Add a comment in a sheet with PHPEXCEL

我正在尝试使用此代码在Excel单元格中添加注释:

$objPHPExcel->getActiveSheet()->getComment(($arr_periodes[2]+1),17+($arr_periodes[1]))->setAuthor($user->prenom.' '.$user->nom);
                           $objCommentRichText = $objPHPExcel->getActiveSheet()->getComment(($arr_periodes[2]+1),17+($arr_periodes[1]))->getText()->createTextRun($res->commentaire);
                           $objCommentRichText->getFont()->setBold(true);
                           $objPHPExcel->getActiveSheet()->getComment(($arr_periodes[2]+1),17+($arr_periodes[1]))->getText()->createTextRun("'r'n");
                           $objPHPExcel->getActiveSheet()->getComment(($arr_periodes[2]+1),17+($arr_periodes[1]))->getText()->createTextRun($res->commentaire);

打开文件,但我需要修复它并且没有显示评论。

这是我的作者:

$writer = new PHPExcel_Writer_Excel2007($objPHPExcel);

编辑

此代码工作:

$objPHPExcel->getActiveSheet()
                            ->getComment('E11')
                            ->getText()->createTextRun($user->commentaire);

是否可以放置一个变量来代替 E11 ?

我必须使用 setCellValueByColumnAndRow,因此 5,11 即

编辑

我的问题仍然存在:

我试过这个:

objPHPExcel->getActiveSheet()
                            ->getComment(($arr_periodes[2]+1),(17+$arr_periodes[1]))
                            ->getText()->createTextRun($user->commentaire);

($arr_periodes[2]+1) 包含在示例 4 中,(17+$arr_periodes[1]) 包含在示例 20 中

参考是 4,17

问题是第一个参数必须是字母!

该文件只有17K,打开它时我必须修复它。

任何想法 ?

请参考

这个食谱:https://github.com/PHPOffice/PHPExcel/blob/dff9880582c4c379ffd4aee7dc62caaab2bab975/Documentation/markdown/Overview/08-Recipes.md#add-a-comment-to-a-cell

并确保您使用的是编写器 Excel2007。

好的,我找到了一个解决方案:

我创建了一个数组:

$arr_lettres = array(2=>'C',3=>'D',4=>'E',5=>'F',6=>'G',7=>'H',8=>'I',9=>'J',10=>'K',11=>'L',12=>'M',13=>'N',14=>'O',15=>'P',16=>'Q',17=>'R',18=>'S',19=>'T',20=>'U',21=>'V',22=>'W',23=>'X',24=>'Y',25=>'Z',26=>'AA',27=>'AB',28=>'AC',29=>'AD',30=>'AE',31=>'AF',32=>'AG');

然后:

$objPHPExcel->getActiveSheet()
                        ->getComment($arr_lettres[($arr_periodes[2]+1)].(17+$arr_periodes[1]))
                        ->getText()->createTextRun($periodes->commentaire);

现在一切都在工作,我有我的评论和文字。