web-dev-qa-db-ja.com

Excelをmaatwebsiteの配列に入れる方法

最新バージョンの Laravel-Excel (3.1.9)を使用してExcelファイルを配列に変換しようとしています

以下のコードはファイルをダウンロードします:

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

しかし、配列のみを取得するように変換する必要があります。このExcelデータをデータベースに保存したくありません。

以下のコードを試してみましたが、バージョン3ではloadメソッドを使用できないため、機能しませんでした。

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

Excelから配列を取得する方法についての考えを共有してください。

4
Rishi Raut

これが私がこれを達成した方法です:

私のUsersImportクラス:名前空間App\Imports;

use App\User;
use Maatwebsite\Excel\Concerns\ToModel;
use Maatwebsite\Excel\Concerns\Importable;

class UsersImport implements ToModel
{
    use Importable;

    public function model(array $row)
    {
        return new User([
           'id' => $row[0]
        ]);
    }
}

そしてコントローラーで:

$imported_users = (new UsersImport)->toArray(request()->file('Excel_file'))[0];

お役に立てば幸いです。

0
user5832543