加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHPExcel无法复制Style对象

发布时间:2020-12-13 16:05:07 所属栏目:PHP教程 来源:网络整理
导读:我想将单元格样式复制到数组而不是使用 $arr = array();$arr[] = $PHPExcel-getActiveSheet()-getStyle('A1');$arr[] = $PHPExcel-getActiveSheet()-getStyle('B1');$arr[] = $PHPExcel-getActiveSheet()-getStyle('C1');//do smth .... $PHPExcel-getActive
我想将单元格样式复制到数组而不是使用

$arr = array();
$arr[] = $PHPExcel->getActiveSheet()->getStyle('A1');
$arr[] = $PHPExcel->getActiveSheet()->getStyle('B1');
$arr[] = $PHPExcel->getActiveSheet()->getStyle('C1');

//do smth .... 

$PHPExcel->getActiveSheet()->duplicateStyle($arr[0],'A2');
$PHPExcel->getActiveSheet()->duplicateStyle($arr[1],'B2');
$PHPExcel->getActiveSheet()->duplicateStyle($arr[2],'C2');

但所有单元格A2,B2,C2都与C1相同.
怎么了?

解决方法

解决方案1:请使用 github的最新版PHPExcel

解决方案2:
手动将修复应用于Classes / PHPExcel / Worksheet.php中的duplicateStyle()方法
从:

if ($this->_parent->cellXfExists($pCellStyle)) {
    // there is already this cell Xf in our collection
    $xfIndex = $pCellStyle->getIndex();
} else {
    // we don't have such a cell Xf,need to add
    $workbook->addCellXf($pCellStyle);
    $xfIndex = $pCellStyle->getIndex();
}

改成:

if ($existingStyle = $this->_parent->getCellXfByHashCode($pCellStyle-
>getHashCode())) {
    // there is already such cell Xf in our collection
    $xfIndex = $existingStyle->getIndex();
} else {
    // we don't have such a cell Xf,need to add
    $workbook->addCellXf($pCellStyle);
    $xfIndex = $pCellStyle->getIndex();
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读