【问题标题】:PHPExcel - why is there no cell->setStyle() method?PHPExcel - 为什么没有 cell->setStyle() 方法?
【发布时间】:2014-11-26 10:12:06
【问题描述】:

我注意到 PHPExcel 的开发人员阅读了这个论坛,所以我将我的问题格式化为直接向他提出的问题。

我正在尝试从模板 excel 文档中获取单元格的完整样式并将其复制到新文档中。

据我所知,有一个 Cell->getStyle() 方法,它返回一个样式对象。但是没有办法将此样式对象应用到另一个单元格。

要应用样式,必须使用不同的函数 Cell->getStyle('A1')->applyFromArray($styleArray) 。此函数采用不同格式的输入 - 样式数组。并且没有办法从样式对象转换为样式数组。这是为什么?为什么这里没有方法 cell->setStyle()?

我还注意到还有另一种方法可以帮助我,Worksheet->duplicateStyle():

$targetWorksheet->duplicateStyle(
    $sourceWorksheet->getStyle($sourceCellCoordinate),
    $targetCellCoordinate
);

但是,当使用此方法复制 TemplateA1->TargetA1,然后是 TemplateB2->TargetB2 时,在我复制第二个单元格的那一刻,第一个单元格 (TargetA1) 被重新设置为也具有第二个样式 (TargetB2) .所以这也行不通。

我已经投入了大约一个小时来研究这个问题,我的下一步可能是实现一个样式对象 -> 样式数组转换器。

任何帮助将不胜感激。

谢谢!

【问题讨论】:

    标签: php excel-2007 phpexcel


    【解决方案1】:

    这个外部讨论已经回答了这个问题: https://phpexcel.codeplex.com/discussions/286662

    Worksheet->duplicateStyle() 确实不能跨文件工作。但是有一个解决方法:使用 addExternalSheet() 将源工作表作为新工作表临时添加到目标文档中,复制格式,然后再次删除临时工作表。

    不过,我仍然没有找到任何答案,为什么没有 cell->setStyle() 方法。

    【讨论】:

      猜你喜欢
      • 2015-11-29
      • 1970-01-01
      • 1970-01-01
      • 2011-07-16
      • 2015-05-01
      • 2014-03-07
      • 2011-06-12
      • 2013-01-18
      • 2019-04-08
      相关资源
      最近更新 更多