我使用以下代码复制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 :(得分: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
*/