繁体   English   中英

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

[英]upload csv to mysql selected columns only - laravel

想要将 CSV 文件上传到 MySQL 数据库中,只上传选定的列,当上传有 select 的选项时,其他将是空白的

您需要一些库来导出/导入到 excel/csv 文件到数据库。

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

您可以通过 Composer 安装此 package。

用法:

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');
}

祝你好运!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM