PHPExcel - 更快地将样式应用于多个单元格

PHPExcel - Applying styles to many cells faster

我正在使用 PHPExcel 创建一个包含大约 20,000 个单元格的电子表格。其中一些单元格的样式为红色。为了应用红色样式,我遍历了一组单元格引用:

foreach ($notCheapest as $cellRef) {
    $sheet->getStyle($cellRef)->applyFromArray([
        'font' => [
            'color' => ['rgb' => 'a00000']
        ]
    ]);
}

虽然这行得通,但速度确实很慢。有没有一种方法可以将一组单元格引用传递给附加样式的 PHPExcel?我猜调用了 getter 1000 次,而 applyFromArray() 方法是导致此处缓慢的原因。

Is there a way of passing an array of cell references to PHPExcel with the style attached?

否,但如果您有连续单元格块,则可以指定范围而不是单个单元格,这样效率更高:

$sheet->getStyle('B2:C5')->applyFromArray([
    'font' => [
        'color' => ['rgb' => 'a00000']
    ]
]);

因为它只是对该范围内所有单元格的单个请求,然后样式将应用于该范围内的单元格,而不是单独应用于每个单元格,所以它的内存效率和速度效率要高得多