【问题标题】:Php split / chunk Excel with Maatwebsite Laravel-Excel v.3使用 Maatwebsite Laravel-Excel v.3 的 PHP 拆分/块 Excel
【发布时间】:2020-02-12 19:08:32
【问题描述】:

我有非常大的 xlsx 1000000 行,但为了测试,我使用 999 行的 Excel。所以,为了节省内存,我想从这个文件中获取大量数据并处理它们。我找到了这个https://docs.laravel-excel.com/3.1/imports/chunk-reading.html

namespace App\Imports;
use Maatwebsite\Excel\Concerns\ToArray;
use Maatwebsite\Excel\Concerns\WithChunkReading;
class ProducttestImport implements ToArray,WithChunkReading
{
    public function array(array $row): array
    { return $row ; }
    public function chunkSize(): int
    { return 100; }
}

在控制器中

myFunc(){
$rows = Excel::toArray(new ProducttestImport(), $path.$excelName)[0];
return  $rows;
}

但我似乎遗漏了一些东西,因为 $rows 的数组包含 999 个数组。我需要包含 10 个数组的数组(分块 999 行时)。

我在哪里可以访问/获取这些块?

【问题讨论】:

    标签: php excel maatwebsite-excel


    【解决方案1】:

    解决方法..

    namespace App\Exports;
    use Maatwebsite\Excel\Concerns\Exportable;
    use Maatwebsite\Excel\Concerns\FromArray;
    class ProducttestExport implements FromArray
    {use Exportable;
        public $inputArr;
    
        public function __construct(array $inputArr = [])
        { $this->inputArr = $inputArr; }
    
        public function array() :array
        {
            if(count($this->inputArr) >0) return $this->inputArr;
            return [];
        }
    }
    

    在foreach中

    ...
    Excel::store( new ProducttestExport($array), $key.'_file.xlsx', 'my_disk' );
    ...
    

    然后一个一个地处理文件..

    但无论如何,我希望有人知道如何获取块并发布答案。

    【讨论】:

      猜你喜欢
      • 2017-11-12
      • 2023-01-25
      • 2021-09-17
      • 1970-01-01
      • 2016-07-15
      • 1970-01-01
      • 1970-01-01
      • 2016-06-07
      • 2019-01-28
      相关资源
      最近更新 更多