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

问题描述 投票:0回答:2

我正在尝试使用此代码在 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,打开就得修复

有什么想法吗?

php phpexcel
2个回答
6
投票

请参考以下配方,并确保您使用的是Excel Writer2007。

PHPExcel-文档-markdown-概述-08-Recipes.md

$objPHPExcel->getActiveSheet()
    ->getComment('E11')
    ->setAuthor('Mark Baker');
$objCommentRichText = $objPHPExcel->getActiveSheet()
    ->getComment('E11')
    ->getText()->createTextRun('PHPExcel:');
$objCommentRichText->getFont()->setBold(true);
$objPHPExcel->getActiveSheet()
    ->getComment('E11')
    ->getText()->createTextRun("\r\n");
$objPHPExcel->getActiveSheet()
    ->getComment('E11')
    ->getText()->createTextRun('Total amount on the current invoice, excluding VAT.');

0
投票

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

我创建了一个数组:

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

现在一切正常,我有我的评论和文字。

© www.soinside.com 2019 - 2024. All rights reserved.