2017-01-30 4 views
0

Можно ли очистить все комментарии к ячейкам в PHPExcel перед добавлением нового? Я работаю код, который добавляет комментарий, но я хотел бы, чтобы очистить все существующие комментарии в конкретной ячейке первым:PHPExcel clear cell comments

$pexr = PHPExcel_IOFactory::createReader('Excel2007'); 
try { 
    $pex = $pexr->load($fn); 
    } catch (Exception $e) { 
    //... 
    return; 
    } 
} 
// ...   
sheet = $pex->getSheetByName($curMed); 
... 
$sheet->setCellValue($col . $row, $r[7]); 
$sheet->getStyle($col . $row)->getNumberFormat()->setFormatCode('#,##0'); 
$sheet->getComment($col . $row)->getText()->createText("My lovely comment\r\n"); 

К сожалению, я не мог найти что-нибудь вроде «ясно» в документации.

ответ

2

Комментарии хранятся в виде массива, индексированного по адресу ячейки в рабочем листе; и он предоставляет методы для получения и установки всего массива; так что вполне возможно, чтобы получить массив, неустановленные комментарии для ячейки, которую вы хотите удалить, а затем поместить массив обратно перезаписывать оригинал:

$comments = $sheet->getComments(); 
if (isset($comments[$col . $row])) { 
    unset($comments[$col . $row]); 
    $sheet->setComments($comments); 
} 
+0

Спасибо, прохладное решение, будет пытаться как можно скорее и подтвердить! – MichaSchumann

+0

Работает как шарм, спасибо вам очень много! – MichaSchumann