PHPExcel快速重复行
发布时间:2020-12-13 17:48:25 所属栏目:PHP教程 来源:网络整理
导读:每个单元格都有不同样式的行.我需要复制它(复制文本,样式,大小). 我正在使用以下功能来执行此操作: function copyRowFull($ws_from,$ws_to,$row_from,$row_to) { $ws_to-getRowDimension($row_to)-setRowHeight($ws_from-getRowDimension($row_from)-getRow
每个单元格都有不同样式的行.我需要复制它(复制文本,样式,大小).
我正在使用以下功能来执行此操作: 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)); 但它不起作用 – 抛出错误“传递的样式数组无效”. 有没有更快的方法? 解决方法
在PHPExcel源代码中进行爬网后,我发现了更快的复制行的方法.它只能在一个工作簿中复制,但它是我需要的.发布它,也许某人也有或将会有类似的问题.
function copyRowFull(&$ws_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()); // black magic here $cell_to->setValue($cell_from->getValue()); } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |