2
我的問題是我嘗試刪除循環中的多行。我想只刪除'好'行並留下帶有標記的壞行。 它看起來像這樣:phpexcel按照單元格的註釋依次刪除多行
$this->writeCellErrorData($objPHPExcel);//write coments a to cell and set bg to red
//get unique rows array
foreach($this->celConstraintViolation as $columnNum=>$row){
foreach($row as $rowNum=>$data){
if(!in_array($rowNum, $this->errorRowsArr)){
$this->errorRowsArr[]=$rowNum;
}
}
}
sort($this->errorRowsArr);
$this->errorRowsArr= array_reverse($this->errorRowsArr);
for($i=$this->celArrRowNum; $i>1; $i--){ //reverse loop
if(!in_array($i, $this->errorRowsArr)){
$objPHPExcel->getActiveSheet()->removeRow($i,1); //remove rows
}
}
之後,我保存該文件。雖然bg顏色應該是它的位置,但評論似乎是在刪除之前的位置。有沒有辦法刪除行,使註釋移動他們應該在哪裏?
添加註釋我用這條線:
$objPHPExcel->getActiveSheet()->
getComment(array_search($columnNum, $this->header).$rowNum)->getText()->
createTextRun($this->cellErrorMessages[$data[0]]);
起初,我建議不要使用Excel電網工作,因爲工作區域,使用Excel僅用於顯示 - 從表示中分離計算,這樣的順序將使調試更容易。如果你想搞亂數據,讀取數組中的所需區域,然後用PHP解決它。 – Deele