Проблема:
Я пытаюсь скопировать выбранный диапазон ячеек из одной таблицы Excel и вставить ее во вновь созданную таблицу, используя laravel-excel
и * 1006.* библиотеки.Пока что код, который я получил, вроде как делает это, но не идеально.
Excel::load($file, function($reader)
{
$activeSheet = $reader->getActiveSheet();
$this->data = $activeSheet->rangeToArray(
'A1:A27', // The worksheet range that we want to retrieve
NULL, // Value that should be returned for empty cells
true, // Should formulas be calculated (the equivalent of getCalculatedValue() for each cell)
true, // Should values be formatted (the equivalent of getFormattedValue() for each cell)
true // Should the array be indexed by cell row and cell column
);
});
// Create new file.
$newExport = Excel::create('Filename', function($excel) {
$excel->sheet('Sheetname', function($sheet) {
$sheet->fromArray($this->data, null, 'B1', true);
});
});
// Export newly created file.
$newExport->export('xlsx');
Проблема в том, что он также вставляет имя столбца в первую ячейку (0
на скриншотепоскольку у меня было отключено индексирование, при включенном индексировании было бы вставлено A
), как вы можете видеть на скриншоте ниже.
Фактический результат: ![Actual result](https://i.stack.imgur.com/RQVce.png)
Ожидаемый результат: ![enter image description here](https://i.stack.imgur.com/5Bl05.png)
Материал, который я пробовал:
- Пытался отключить индексирование внутри метода
rangeToArray
. - Добавить имя столбца в список игнорирования (2-й параметр в
fromArray()
), но это не прагматично, так как я бы добавил каждыйимя одного столбца в списке игнорирования, кроме того, оно вставляет пустое значение в первый столбец и начинается с B2
ячейки.
Если кто-нибудь может дать мне несколько идей, как решить этот случай, было бы здорово.
Спасибо!