Объединять листы со стилями с помощью PhpSpreadsheet

Я хочу объединить / скопировать какой-либо другой рабочий лист b после последней записи в рабочем листе a. Я не нашел никаких решений, поэтому я работал с rangeToArray и Array, чтобы получить содержимое из листа b и вставить его в лист a.

Проблема в том, что он не скопировал стили из ячеек. Как можно копировать стили? Есть ли функция для копирования всех элементов стиля?

<?php
namespace PhpOffice\PhpSpreadsheet\TemplateFiller;
use \PhpOffice\PhpSpreadsheet\Worksheet\Worksheet as wrks;
use \PhpOffice\PhpSpreadsheet\Style as style;

Class Utils
{
    protected $cols;
    protected $rows;

    public function __construct() {

    }

    public static function copyRows(wrks $srcSheet, $srcFrom, $srcTo, wrks $dstSheet, $dstFrom, $dstTo) {
        self::copyContent($srcSheet, $srcFrom, $srcTo, $dstSheet, $dstFrom);

        self::copyStyle($srcSheet, $srcFrom, $srcTo, $dstSheet, $dstFrom, $dstTo);
    }

    public static function copyStyle(wrks $srcSheet, $srcFrom, $srcTo, wrks $dstSheet, $dstFrom, $dstTo) {
        // Copy Style from srcSheet to dstSheet
    }

    public static function copyContent(style $srcSheet, $srcFrom, $srcTo, wrks $dstSheet, $dstFrom) {
        $cellValues = $srcSheet->rangeToArray($srcFrom.':'.$srcTo);
        $dstSheet->fromArray($cellValues, NULL, $dstFrom);
    }
}

0 ответов

Другие вопросы по тегам