仅将 csv 上传到 mysql 个选定列 - laravel

upload csv to mysql selected columns only - laravel

想要将 CSV 文件上传到 MySQL 数据库中,仅上传 select 编辑的列,当上传具有 select 想要上传的列或字段的选项时,其他列将为空白并仅上传 selected,我该怎么做,任何人都有任何解决方案

你需要一些库来 export/import 到 excel/csv 文件到数据库。

有很多解决方案。 您可以使用例如: https://docs.laravel-excel.com/3.1/imports/

您可以通过 Composer 安装此包。

用法:

namespace App\Imports;

use App\User;
use Illuminate\Support\Facades\Hash;
use Maatwebsite\Excel\Concerns\ToModel;

class UsersImport implements ToModel
{
    /**
     * @param array $row
     *
     * @return User|null
     */
    public function model(array $row)
    {
        return new User([
           'name'     => $row[0],
           'email'    => $row[1], 
           'password' => Hash::make($row[2]),
        ]);
    }
}

如何导入某些列? https://docs.laravel-excel.com/3.1/imports/collection.html

namespace App\Imports;

use App\User;
use Illuminate\Support\Collection;
use Maatwebsite\Excel\Concerns\ToCollection;

class UsersImport implements ToCollection
{
    public function collection(Collection $rows)
    {
        foreach ($rows as $row) 
        {
            User::create([
                'name' => $row[0], // Here select ROW - 0 is the first row from your CSV
            ]);
        }
    }
}

public function import() 
{
    Excel::import(new UsersImport, 'users.xlsx');
}

祝你好运!