2014-12-30 50 views
0

我使用此代碼嘗試添加在Excel單元格中的註釋:在紙張添加評論與PHPEXCEL

$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 AND(17 + $ arr_periodes [1])包含例20

參考號是4,17

問題是第一個參數必須是一個字母!

該文件只有17K,我打開它時必須修復它。

任何想法?

+0

您是否使用了正確的作者?你使用的是什麼excel版本?你使用什麼作家和讀者?另外,你是否指向有效的評論? – briosheje

+0

這是我的作家:$ writer = new PHPExcel_Writer_Excel2007($ objPHPExcel); – user3553866

+0

當然,可以用一個變量來代替「E11」,它只是一個標準的PHP字符串,所以可以用一個包含PHP字符串的變量替換,如:$ cell ='E11'; $ objPHPExcel-> getActiveSheet() - > getComment($ cell) - > getText() - > createTextRun($ user-> commentaire);' –

回答

0

OK,我發現了一個解決方案:

我創建了一個數組:

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

現在所有的工作,我有我的意見和文字。

+7

爲什麼人們堅持重新創建索引號到字母函數時,PHPExcel已經內置..... $ letterIndex ='PHPExcel_Cell :: stringFromColumnIndex($ numberIndex - 1)',如我的意見 –

+0

所示我重新創建了它太! – Tebe

3
+0

OK,this code works:$ objPHPExcel-> getActiveSheet() - > getComment('E11') - > getText() - > createTextRun('Total amount on the當前發票,不含增值稅。');是否有可能通過變量更改E11? – user3553866

+0

getComment($ cellIdentifier) - > getText()... 但這與這個問題無關,而且是基礎知識。 –