>PHP 프레임워크 >Laravel >Laravel 개발: Laravel Excel을 사용하여 Excel 가져오기 및 내보내기를 구현하는 방법은 무엇입니까?

Laravel 개발: Laravel Excel을 사용하여 Excel 가져오기 및 내보내기를 구현하는 방법은 무엇입니까?

王林
王林원래의
2023-06-13 14:55:002805검색

Laravel 개발: Laravel Excel을 사용하여 Excel 가져오기 및 내보내기를 구현하는 방법은 무엇입니까?

개발 중에 Excel 테이블은 데이터 가져오기 및 내보내기와 같은 데이터 처리에 자주 사용됩니다. Laravel Excel은 Excel 파일 읽기, 쓰기, 내보내기 작업을 포함하여 Excel 파일을 쉽게 처리할 수 있게 해주는 간단하고 강력한 Laravel 확장 프로그램입니다. 이번 글에서는 Laravel Excel을 이용하여 Excel 가져오기, 내보내기를 구현하는 방법을 소개하겠습니다.

  1. Laravel Excel 설치

Laravel 프로젝트에서 Laravel Excel을 사용하는 것은 매우 간단합니다. laravel-excel 패키지의 종속성을 Composer.json 파일에 추가하기만 하면 됩니다. 명령줄에서 다음 명령을 실행합니다:

composer require maatwebsite/excel
  1. Configuring Laravel Excel

Laravel Excel을 설치한 후 이를 사용하려면 몇 가지 구성을 수행해야 합니다. 먼저 config/app.php 파일에 다음 코드를 추가하세요:

'providers' => [
    // ...
    MaatwebsiteExcelExcelServiceProvider::class,
  ],

'aliases' => [
    // ...
    'Excel' => MaatwebsiteExcelFacadesExcel::class,
  ],

그런 다음 Laravel Excel 구성 파일을 게시하고 다음 명령을 실행해야 합니다:

php artisan vendor:publish --provider="MaatwebsiteExcelExcelServiceProvider" --tag=config

이렇게 하면 config 디렉터리에 excel.php 파일이 생성됩니다. , 내보내기 파일 형식, 기본 내보내기 파일 이름 등과 같은 일부 구성을 이 파일에서 만들 수 있습니다.

  1. Excel 파일 내보내기

다음으로 Laravel Excel을 사용하여 Excel 파일을 내보내는 방법을 소개하겠습니다.

3.1 내보내기 클래스 만들기

먼저 내보낸 데이터의 형식과 내용을 정의하기 위한 내보내기 클래스를 만들어야 합니다. 명령줄에서 다음 명령을 실행하세요:

php artisan make:export UsersExport --model=User

그러면 app/Exports 디렉터리에 내보낸 Excel 파일의 데이터 형식과 콘텐츠를 정의할 수 있는 UsersExport 클래스가 생성됩니다. 예를 들어 사용자 테이블의 데이터를 내보내려는 경우 이 클래스에 다음 콘텐츠를 정의할 수 있습니다.

namespace AppExports;

use AppModelsUser;
use MaatwebsiteExcelConcernsFromCollection;

class UsersExport implements FromCollection
{
   public function collection()
   {
       return User::all();
   }
}

위 코드에서는 내보낸 데이터의 소스가 모든 사용자 데이터인 FromCollection 인터페이스를 통해 지정합니다. 사용자 모델에서.

FromCollection 인터페이스 외에도 Laravel Excel은 FromQuery 및 FromView 등과 같은 다른 인터페이스도 제공합니다. 실제 필요에 따라 해당 인터페이스를 선택할 수 있습니다.

3.2 내보내기 클래스를 사용하여 Excel 파일 내보내기

내보내기 클래스를 정의한 후 다음 코드를 통해 내보내기 클래스를 호출하여 데이터를 Excel 파일로 내보낼 수 있습니다.

use AppExportsUsersExport;
use MaatwebsiteExcelFacadesExcel;

public function export()
{
    return Excel::download(new UsersExport, 'users.xlsx');
}

위 코드에서는 Excel을 사용합니다. :download( ) 메서드를 사용하여 Excel 파일을 출력합니다. 여기서 첫 번째 매개변수는 방금 생성한 내보내기 클래스 객체이고 두 번째 매개변수는 Excel 파일의 이름입니다.

  1. Excel 파일 가져오기

다음으로 Laravel Excel을 사용하여 Excel 파일을 가져오는 방법을 소개하겠습니다.

4.1 가져오기 클래스 만들기

먼저 가져온 데이터의 형식과 내용을 정의하기 위해 가져오기 클래스를 만들어야 합니다. 명령줄에서 다음 명령을 실행하세요:

php artisan make:import UsersImport --model=User

이렇게 하면 app/Imports 디렉터리에 가져온 Excel 파일의 데이터 형식과 콘텐츠를 정의할 수 있는 UsersImport 클래스가 생성됩니다. 예를 들어, User 테이블에서 데이터를 가져오려면 이 클래스에서 다음 콘텐츠를 정의할 수 있습니다.

namespace AppImports;

use AppModelsUser;
use MaatwebsiteExcelConcernsToModel;
use MaatwebsiteExcelConcernsWithHeadingRow;

class UsersImport implements ToModel, WithHeadingRow
{
    public function model(array $row)
    {
        return new User([
            'name'     => $row['name'],
            'email'    => $row['email'],
            'password' => Hash::make($row['password']),
        ]);
    }
}

위 코드에서 Excel 파일의 각 데이터 행을 다음을 통해 User 모델의 속성에 매핑합니다. ToModel 인터페이스 및 전달 WithHeadingRow 인터페이스는 Excel 파일의 첫 번째 행을 헤더(즉, 속성 이름)로 지정합니다.

ToModel 및 WithHeadingRow 인터페이스 외에도 Laravel Excel은 ToCollection 및 ToModel 등과 같은 다른 인터페이스도 제공합니다. 실제 필요에 따라 해당 인터페이스를 선택할 수 있습니다.

4.2 가져오기 클래스를 사용하여 Excel 파일 가져오기

가져오기 클래스를 정의한 후 다음 코드를 통해 가져오기 클래스를 호출하여 Excel 파일의 데이터를 데이터베이스로 가져올 수 있습니다.

use AppImportsUsersImport;
use MaatwebsiteExcelFacadesExcel;

public function import()
{
    Excel::import(new UsersImport, request()->file('file'));

    return redirect()->back();
}

위 코드에서 우리는 다음을 사용합니다. Excel: Excel 파일을 가져오는 :import() 메서드. 여기서 첫 번째 매개변수는 방금 생성된 가져오기 클래스 객체이고 두 번째 매개변수는 업로드된 Excel 파일입니다.

  1. 결론

Laravel Excel을 사용하면 Excel 파일의 가져오기 및 내보내기 기능을 쉽게 구현할 수 있어 데이터 처리 과정이 크게 단순화됩니다. 실제 프로젝트 개발에 있어서 Laravel Excel을 사용하면 개발 효율성을 크게 향상시키고 개발 비용을 절감할 수 있습니다. 이 기사가 도움이 되기를 바랍니다.

위 내용은 Laravel 개발: Laravel Excel을 사용하여 Excel 가져오기 및 내보내기를 구현하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.