Обновление ссылок на ячейки в скопированных строках в PHPExcel (PHPSpreadsheet)

Я использую следующий код для копирования строк в PHPSpreadsheet. Однако я хотел бы изменить ссылки на формулы в скопированных строках, чтобы отразить новый номер строки. (например, (A1-B1), (A2-B2), A3-B3 и т. д.) Есть предложения?

function copyRowFull(&$ws_from, &$ws_to, $row_from, $row_to) {
$ws_to->getRowDimension($row_to)->setRowHeight($ws_from->getRowDimension($row_from)->getRowHeight());
$lastColumn = $ws_from->getHighestColumn();
++$lastColumn;
for ($c = 'A'; $c != $lastColumn; ++$c) {
$cell_from = $ws_from->getCell($c.$row_from);
$cell_to = $ws_to->getCell($c.$row_to);
$cell_to->setXfIndex($cell_from->getXfIndex());
$cell_to->setValue($cell_from->getValue());
}
}

0

Решение

Вы должны быть в состоянии использовать updateFormulaReferences() метод PHPExcel_ReferenceHelper класс для обновления ссылок на ячейки в строке формулы

/**
* Update references within formulas
*
* @param    string    $pFormula    Formula to update
* @param    int        $pBefore    Insert before this one
* @param    int        $pNumCols    Number of columns to insert
* @param    int        $pNumRows    Number of rows to insert
* @param   string  $sheetName  Worksheet name/title
* @return    string    Updated formula
* @throws    PHPExcel_Exception
*/
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]