【发布时间】:2015-03-30 08:39:54
【问题描述】:
每个单元格都有不同样式的行。我需要复制它(复制文本、样式、大小)。
我正在使用以下功能来做到这一点:
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();
$rangeFrom = 'A'.$row_from.':'.$lastColumn.$row_from;
// copy text
$ws_to->fromArray($ws_from->rangeToArray($rangeFrom), null, 'A'.$row_to);
// copy style
++$lastColumn;
for ($c = 'A'; $c != $lastColumn; ++$c) {
$ws_to->duplicateStyle($ws_from->getStyle($c.$row_from), $c.$row_to);
}
}
但是由于循环,它非常慢,但我需要它快,因为会复制很多行。
我也试过这个用于样式复制:
$rangeTo = 'A'.$row_to.':'.$lastColumn.$row_to;
$ws_to->getStyle($rangeTo)->applyFromArray($ws_from->getStyle($rangeFrom));
但它不起作用 - 抛出错误“传递的样式数组无效”。
有没有更快的方法?
【问题讨论】: