首页 > 解决方案 > 如何在 maatwebsite 中获取 excel 到数组

问题描述

我正在尝试使用最新版本的Laravel-Excel (3.1.9)将 Excel 文件转换为数组

下面的代码将下载文件:

return Excel::download(new SalesOrderExport('columns'),'test.xlsx')

但我需要将其转换为仅获取一个数组。此时我不想将此 Excel 数据存储在数据库中。

我尝试使用下面的代码,但它不起作用,因为该load方法在版本 3 中不可用。

Excel::load($request->file('sampledata'), function ($reader) {
    return response()->json($reader);
});

请分享您对如何从 Excel 获取数组的想法。

标签: excellaravelmaatwebsite-excellaravel-excel

解决方案


我和@narayan 努力将请求的 excel 文件放入数组中。现在我可以使用以下代码正确获取数组

$rows = Excel::toArray(new SalesOrderImport, $request->file('sampledata')); 

在我的 SalesOrderExport 类中,我只有默认函数,这是抽象方法所必需的。

namespace App\Exports;

use App\SalesOrder;
use Maatwebsite\Excel\Concerns\FromCollection;

class SalesOrderExport implements FromCollection
{
    public function collection()
    {   
        return SalesOrder::all();
    }
}

我的控制器代码

public function importTest(Request $request)
{
    $rows = Excel::toArray(new SalesOrderImport, $request->file('sampledata'));
    return response()->json(["rows"=>$rows]);
}

在 HTML 中

<input class="" type="file" name="sampledata" id="sampledata">

我已经创建了这个导出

php artisan make:import SalesOrder

附上相关图片

在此处输入图像描述在此处输入图像描述


推荐阅读