簡體   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