复制 excel 列并插入到新数组中

Copying excel column and inserting into new array

问题:

我想要实现的是从一个 excel 电子表格中复制选定范围的单元格,然后使用 laravel-excelphpspreadsheet 库将其插入到新生成的电子表格中。到目前为止,我得到的代码在某种程度上可以做到这一点,但并不理想。

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) ,如您在下面的屏幕截图中所见。

实际结果:

预期结果:

我试过的东西:

如果有人能给我一些解决此案的想法,那就太好了。

谢谢!

案例答案如下...

阅读您实际使用的库的文档,而不是它所基于的库的文档。

添加列标题的原因是 laravel-excel 库 fromArray 方法默认 属性 值,默认情况下启用 heading generation

$sheet->fromArray($this->data, null, 'B1', true);

改为

$sheet->fromArray($this->data, null, 'B1', true, false);

接受的参数:

fromArray($source, $nullValue, $startCell, $strictNullComparison, $headingGeneration).