>PHP 프레임워크 >Laravel >Laravel 개발: Laravel Excel 및 PHPOffice를 사용하여 Excel 파일을 읽고 쓰는 방법은 무엇입니까?

Laravel 개발: Laravel Excel 및 PHPOffice를 사용하여 Excel 파일을 읽고 쓰는 방법은 무엇입니까?

PHPz
PHPz원래의
2023-06-13 17:57:582797검색

비즈니스 및 금융 분야에서 Excel 파일이 널리 사용됨에 따라 Excel 파일을 웹 응용 프로그램에 통합하는 것은 개발자에게 필요한 기술 중 하나가 되었습니다. Laravel은 널리 사용되는 PHP 프레임워크이므로 해당 생태계에는 Excel 파일을 읽고 쓰는 데 도움이 되는 많은 패키지가 있습니다. 이 글에서는 Laravel Excel과 PHPOffice 라이브러리를 사용하여 Laravel 애플리케이션에서 Excel 파일을 읽고 쓰는 방법을 소개합니다.

라라벨 엑셀이 무엇인가요?

Laravel Excel은 Laravel 프레임워크용으로 개발된 강력한 Excel 처리 도구입니다. 이 도구는 Excel 파일을 쉽게 가져오고 내보내는 데 도움이 되는 사용하기 쉬운 API를 제공합니다. 이 도구의 주요 장점 중 하나는 Excel 소프트웨어에 의존하지 않고도 Excel 파일을 직접 조작할 수 있다는 것입니다.

Laravel Excel 설치는 Composer를 통해 할 수 있습니다. 터미널의 Laravel 프로젝트 디렉터리로 이동하여 다음 Composer 명령을 실행합니다:

composer require maatwebsite/excel

이 명령은 Packagist에서 최신 버전의 Laravel Excel을 다운로드하고 자동으로 설치 프로세스를 완료합니다.

Laravel Excel을 사용하여 Excel 파일을 내보내는 방법은 무엇입니까?

Laravel Excel은 새 Excel 파일을 생성하거나 기존 Excel 파일을 열고 편집할 수 있는 프록시 클래스인 Excel 클래스를 제공합니다. 이 클래스를 사용하여 Laravel 애플리케이션에서 Excel 파일을 내보낼 수 있습니다.

프로젝트에서 새 Excel 파일을 생성하고 Laravel Excel에서 제공하는 다음 템플릿을 사용할 수 있습니다.

<?php

namespace AppExports;

use MaatwebsiteExcelConcernsFromCollection;
use MaatwebsiteExcelConcernsWithHeadings;

class ExampleExport implements FromCollection, WithHeadings
{
    public function headings(): array
    {
        return [
            'ID',
            'Name',
            'Email',
            'Phone',
        ];
    }

    /**
    * @return IlluminateSupportCollection
    */
    public function collection()
    {
        return User::select('id', 'name', 'email', 'phone')->get();
    }
}

위 코드에서 예제Export라는 클래스를 정의했습니다. 이 클래스는 Excel 파일을 생성하는 데 필요한 메서드를 제공하는 FromCollection 및 WithHeadings 인터페이스를 사용합니다.

headings() 메서드에서는 Excel 워크시트의 첫 번째 행에 나열되는 Excel 파일의 헤더를 정의합니다. Collect() 메소드에서는 데이터베이스에서 사용자 레코드를 검색하여 클래스를 호출한 컨트롤러에 반환합니다.

Excel 파일을 내보내려면 다음과 같이 컨트롤러 메서드에서 예제Export를 인스턴스화할 수 있습니다.

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

위 코드에서는 Laravel Excel에서 제공하는 download() 메서드를 사용하여 예제Export에서 Excel 파일을 내보냅니다. 이 메서드에는 두 개의 매개 변수가 필요합니다. 첫 번째 매개 변수는 exampleExport 인스턴스이고 두 번째 매개 변수는 Excel 파일 이름입니다.

브라우저에서 내보내기 방법의 URL에 접속하면 users.xlsx 파일을 다운로드하라는 메시지가 표시됩니다.

Laravel Excel을 사용하여 Excel 파일을 가져오는 방법은 무엇입니까?

Excel 파일을 읽고 해당 데이터를 데이터베이스로 가져올 때 Laravel Excel에서 제공하는 import() 메서드를 사용할 수 있습니다. 이 메서드는 파일 개체, 작업 콜백, 워크시트 이름 등 세 가지 매개 변수를 사용합니다.

Excel 파일을 가져오는 방법을 보여주기 위해 아래와 같이 UserImport라는 클래스를 만듭니다.

<?php

namespace AppImports;

use AppUser;
use MaatwebsiteExcelConcernsToModel;

class UserImport implements ToModel
{
    public function model(array $row)
    {
        return new User([
            'name' => $row[0],
            'email' => $row[1],
            'phone' => $row[2],
        ]);
    }
}

위 코드에서는 ToModel 인터페이스를 사용하여 UserImport 클래스를 구현했습니다. ToModel 인터페이스는 Excel 데이터의 각 행을 모델 개체로 변환하는 필수 model() 메서드를 제공합니다. 위 코드에서는 Excel 파일의 처음 세 열을 구문 분석하고 이를 사용하여 새 사용자 레코드를 생성했습니다.

아래 그림과 같이 컨트롤러의 import() 메소드를 사용하여 Excel 파일을 가져옵니다.

public function import(Request $request)
{
    $file = $request->file('file');
    Excel::import(new UserImport, $file);
    return redirect()->back()->with('success', 'Excel file imported successfully.');
}

위 코드에서는 업로드된 Excel 파일 객체를 가져와서 Laravel의 import() 메소드를 통해 UserImport 클래스로 가져옵니다. 엑셀 중. 가져오기가 성공하면 시스템은 "Excel 파일을 성공적으로 가져왔습니다"라는 성공 메시지와 함께 사용자에게 리디렉션 응답을 보냅니다.

PHPOffice 라이브러리를 사용하여 Excel 파일을 읽고 쓰는 방법은 무엇입니까?

PHPOffice는 Excel, Word, PowerPoint 등과 같은 다양한 유형의 Office 파일을 읽고 쓰는 데 사용되는 PHP 라이브러리입니다. PHPOffice는 Laravel Excel과 달리 특정 프레임워크용으로 개발되지 않았으며 모든 PHP 애플리케이션에서 사용할 수 있습니다.

PHPOffice를 설치하기 전에 PHP Zip 확장과 PHP XML 확장이 설치되어 있는지 확인해야 합니다.

Composer를 사용하여 PHPOffice의 스프레드시트 라이브러리를 설치하려면 다음 명령을 사용할 수 있습니다.

composer require phpoffice/phpspreadsheet

새 Excel 파일을 만들려면 다음 코드를 사용할 수 있습니다.

<?php

use PhpOfficePhpSpreadsheetSpreadsheet;
use PhpOfficePhpSpreadsheetWriterXlsx;

$spreadsheet = new Spreadsheet();
$sheet = $spreadsheet->getActiveSheet();
$sheet->setCellValue('A1', 'Hello World!');
$sheet->setCellValue('B1', 'This is PHPOffice.');

$writer = new Xlsx($spreadsheet);
$writer->save('hello.xlsx');

위 코드에서 먼저 새 스프레드시트를 만들고, 첫 번째 행의 처음 두 열에 "Hello World!" 및 "This is PHPOffice"에 대한 셀이 추가되었습니다. 그런 다음 스프레드시트를 hello.xlsx 파일에 저장합니다.

기존 Excel 파일을 열고 편집하려면 다음 코드를 사용할 수 있습니다.

<?php

use PhpOfficePhpSpreadsheetIOFactory;

$spreadsheet = IOFactory::load('hello.xlsx');
$sheet = $spreadsheet->getActiveSheet();
$sheet->setCellValue('C1', 'This cell has been added.');

$writer = new Xlsx($spreadsheet);
$writer->save('hello.xlsx');

위 코드에서는 IOFactory 클래스를 사용하여 디스크에서 기존 Excel 파일을 로드합니다. 그런 다음 파일의 활성 워크시트를 열고 새 셀을 추가했습니다. 마지막으로 업데이트를 원본 파일에 저장합니다.

결론

이 글에서는 Laravel Excel과 PHPOffice 라이브러리를 사용하여 Laravel 애플리케이션에서 Excel 파일을 읽고 쓰는 방법을 소개했습니다. Laravel Excel을 사용하여 Excel 파일을 내보내고 가져오는 방법과 PHPOffice 라이브러리를 사용하여 기존 Excel 파일을 만들고 열고 편집하는 방법을 배웠습니다. 이러한 기술을 사용하면 Excel 파일을 Laravel 애플리케이션에 더 쉽게 통합할 수 있습니다.

위 내용은 Laravel 개발: Laravel Excel 및 PHPOffice를 사용하여 Excel 파일을 읽고 쓰는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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