[Laravel] ๋ผ๋ผ๋ฒจ์—์„œ ์—‘์…€ ๋‹ค๋ฃจ๊ธฐ

2023. 4. 6. 11:36ยท๐Ÿ“Framework/๐ŸŽต Laravel
๋ฐ˜์‘ํ˜•

์„ค์น˜

์—‘์…€ ํŒจํ‚ค์ง€ ์„ค์น˜

composer require maatwebsite/excel

 

config/app.php ํŒŒ์ผ ์ˆ˜์ •

'providers' => [
	/*
     * Package Service Providers...
     */
	Maatwebsite\Excel\ExcelServiceProvider::class,
],
'aliases' => [
	'Excel' => Maatwebsite\Excel\Facades\Excel::class,
]

 

venter publich ๋ช…๋ น์–ด ์‹คํ–‰

php artisan vendor:publish

> ์‹คํ–‰ํ›„ Provider: Maatwebsite\Excel\ExcelServiceProvider ์˜ ๋ฒˆํ˜ธ ์ž…๋ ฅํ•˜๊ณ  ์—”ํ„ฐ

 


 

์‚ฝ์ž…ํ•  ์—‘์…€ ํŒŒ์ผ

ํ…Œ์ด๋ธ”

 


 

DB์— ๋ฐ”๋กœ importํ•˜๊ธฐ

conrtoller, model, import ์ƒ์„ฑ

php artisan make:controller TestController

php artisan make:model TestTable

php artisan make:import TestImport --model=TestTable

 

Controllers/TestController

<?php

namespace App\Http\Controllers;

use App\Imports\TestImport;
use Illuminate\Http\Request;
use Maatwebsite\Excel\Facades\Excel;

class TestController extends Controller
{
    public function testImport()
    {
        Excel::import(new TestImport, 'test.xlsx');

        return '์„ฑ๊ณต';
    }
}

 

Models/TestTable

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;

class TestTable extends Model
{
    use HasFactory;

    protected $table = "Test_table";

    public $timestamps = false; //created_at, updated_at ์ปฌ๋Ÿผ ์‚ฌ์šฉ ์•ˆํ•จ

    protected $fillable = [
        'name',
        'nickname',
        'phone',
        'address',
    ];

}

 

Imports/TestImport

<?php

namespace App\Imports;

use App\Models\TestTable;
use Maatwebsite\Excel\Concerns\ToModel;

class TestImport implements ToModel
{
    /**
    * @param array $row
    *
    * @return \Illuminate\Database\Eloquent\Model|null
    */
    public function model(array $row)
    {
        return new TestTable([
            'name'     => $row[0],
            'nickname'     => $row[1],
            'phone'     => $row[2],
            'address'     => $row[3],
        ]);
    }
}

 

routes/api

Route::get('/test', [TestController::class, 'testImport']);

 

์‹คํ–‰

 


 

๋ฐฐ์—ด๋กœ ์ถœ๋ ฅํ•˜๊ธฐ

controller, import ์ƒ์„ฑ

php artisan make:controller TestController

php artisan make:import TestArrayImport

 

Controllers/TestController

<?php

namespace App\Http\Controllers;

use App\Imports\TestArrayImport;
use Illuminate\Http\Request;
use Maatwebsite\Excel\Facades\Excel;

class TestController extends Controller
{
    public function testArray()
    {
        $array = Excel::toArray(new TestArrayImport, 'test.xlsx');

        return $array;
    }
}

 

Imports/TestArrayImport

<?php

namespace App\Imports;

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

class TestArrayImport implements ToCollection
{
    /**
    * @param Collection $collection
    */
    public function collection(Collection $collection)
    {
        //
    }
}

 

route/api

Route::get('/test-array', [TestController::class, 'testArray']);

 

์‹คํ–‰

๋ฐ˜์‘ํ˜•
์ €์ž‘์žํ‘œ์‹œ (์ƒˆ์ฐฝ์—ด๋ฆผ)

'๐Ÿ“Framework > ๐ŸŽต Laravel' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[Laravel] ๋ผ๋ผ๋ฒจ์— swagger ์ ์šฉํ•˜๊ธฐ  (0) 2023.04.21
[Laravel] Serialization of 'Illuminate\\Http\\UploadedFile' is not allowed ์—๋Ÿฌ  (0) 2023.03.08
[Laravel] Maximum execution time of 60 seconds exceeded ์—๋Ÿฌ  (0) 2022.05.24
[Laravel] layout  (0) 2021.11.17
[Laravel] routes  (0) 2021.11.17
'๐Ÿ“Framework/๐ŸŽต Laravel' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [Laravel] ๋ผ๋ผ๋ฒจ์— swagger ์ ์šฉํ•˜๊ธฐ
  • [Laravel] Serialization of 'Illuminate\\Http\\UploadedFile' is not allowed ์—๋Ÿฌ
  • [Laravel] Maximum execution time of 60 seconds exceeded ์—๋Ÿฌ
  • [Laravel] layout
yujch
yujch
ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ณต๋ถ€ ๋ฉ”๋ชจ
    ๋ฐ˜์‘ํ˜•
  • yujch
    โœŽRepository
    yujch
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (95)
      • ๐Ÿ“Language (42)
        • ๐ŸŒ HTML (3)
        • ๐ŸŸจ Javascript (4)
        • ๐ŸŸฃ PHP (9)
        • ๐ŸŸข Node.js (6)
        • โ˜• Java (10)
        • โž• Python (9)
        • ๐Ÿ”ต C (1)
      • ๐Ÿ“Framework (11)
        • ๐Ÿƒ Spring (1)
        • ๐ŸŽต Laravel (9)
        • ๐Ÿš„ Express (1)
      • ๐Ÿ“DB (7)
        • ๐Ÿฌ MySQL (6)
        • ๐Ÿ˜ PostgreSQL (1)
      • ๐Ÿ“DevOps (6)
      • ๐Ÿ“Book (2)
      • ๐Ÿ“ETC. (16)
        • โš’๏ธ Tool (11)
        • ๐Ÿชข API Connection (5)
      • ๐Ÿ“์ž๊ฒฉ์ฆ ๊ณต๋ถ€ (10)
        • ๐Ÿ“™ SQLD (7)
        • ๐Ÿ“™ ๋ฆฌ๋ˆ…์Šค๋งˆ์Šคํ„ฐ (3)
      • ๐Ÿ“˜ ๋…ธํŠธ (1)
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    • ๐Ÿ ํ™ˆ
    • ๐Ÿ“ฎ๋ฐฉ๋ช…๋ก
  • ๋งํฌ

    • Github
  • ์ธ๊ธฐ ๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.0
yujch
[Laravel] ๋ผ๋ผ๋ฒจ์—์„œ ์—‘์…€ ๋‹ค๋ฃจ๊ธฐ
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”