무료 PHP 라이브러리를 통해 Excel, CSV 및 ODS 파일 가져오기 및 내보내기
소프트웨어 개발자가 MS Excel 파일을 가져오고 내보낼 수 있게 해주는 오픈 소스 PHP API입니다. 대용량 데이터 세트를 효율적으로 처리하기 위한 기능, 장점 및 코드 예제를 알아보세요.
Fast-Excel이란 무엇인가요?
Fast-Excel은 Laravel 애플리케이션에서 Excel 및 CSV 가져오기/내보내기 작업을 단순화하도록 설계된 가벼운 PHP 패키지입니다. OpenSpout 위에 구축되어 속도, 낮은 메모리 사용량, 개발자 친화적인 구문에 중점을 둡니다. 무거운 스프레드시트 라이브러리와 달리 Fast-Excel은 불필요한 복잡성 없이 간단하고 효율적인 스프레드시트 처리가 필요한 프로젝트에 이상적입니다. XLSX, CSV 및 ODS 파일의 내보내기와 가져오기를 지원하며 메모리 소비를 놀라울 정도로 낮게 유지합니다.
Fast-Excel은 대용량 Excel, CSV 또는 ODS 파일을 메모리 제한 없이 처리해야 하는 개발자에게 특히 유용합니다. 기존 라이브러리는 전체 데이터 세트를 메모리에 로드하는 경우가 많지만, Fast-Excel은 스트리밍 기술을 사용하여 데이터를 효율적으로 처리합니다. 이 라이브러리는 데이터베이스 레코드를 스프레드시트로 내보내거나, 사용자 데이터 또는 보고서를 가져오거나, 대규모 보고서를 동적으로 생성하거나, Laravel 앱에서 Excel 처리를 단순화하는 등 다양한 용도로 널리 사용됩니다. 깔끔한 API와 최소한의 설정으로 Fast-Excel은 개발 시간을 줄이고 성능을 향상시킵니다.
Fast-Excel 시작하기
Fast-Excel을 프로젝트에 설치하는 권장 방법은 Composer를 사용하는 것입니다. 원활한 설치를 위해 다음 명령을 사용하십시오.
Composer를 통해 Fast-Excel 설치
composer require rap2hpoutre/fast-excel다음 명령을 실행하여 Git으로 프로젝트를 클론할 수도 있습니다.
PHP를 사용하여 컬렉션을 Excel 파일로 내보내기
Fast-Excel는 컬렉션이나 모델을 Excel로 내보내는 작업을 매우 간단하게 만들어 줍니다. 몇 줄의 코드만으로 .xlsx, .csv, 또는 .ods 파일을 생성할 수 있습니다. 이 기능은 반복적인 코드를 없애고 개발 속도를 높이며, 특히 대시보드나 보고 시스템에 유용합니다. 다음 예제는 PHP 코드를 사용하여 데이터를 MS Excel XLSX 파일로 내보내는 방법을 보여줍니다. 이 라이브러리는 복잡한 설정 없이 Laravel 컬렉션을 직접 Excel 파일로 변환합니다.
PHP 라이브러리를 사용하여 Excel XLSX 파일로 데이터를 내보내는 방법은?
use Rap2hpoutre\FastExcel\FastExcel;
// Sample data
$list = collect([
['id' => 1, 'name' => 'Jane'],
['id' => 2, 'name' => 'John'],
]);
// Export to Excel
(new FastExcel($list))->export('users.xlsx');
제너레이터를 사용한 메모리 효율적인 청크 내보내기
오픈 소스 Fast-Excel 라이브러리는 낮은 메모리 사용량을 지원하고 데이터 가져오기 및 내보내기를 위한 간단한 구문을 포함하고 있습니다. 이는 "빅 데이터"를 처리하기 위한 핵심 기능입니다. 100만 명의 사용자를 배열에 로드하는 대신 Laravel의 cursor() 또는 사용자 정의 yield 제너레이터를 사용합니다. 내보내기 도구는 각 행을 하나씩 처리하여 파일에 기록하고 메모리에서 삭제합니다. 이렇게 하면 100행을 내보내든 1천만 행을 내보내든 메모리 사용량이 일정하게 (매우 낮게) 유지됩니다.
PHP 애플리케이션에서 사용자 정의 헤더와 함께 특정 필드를 내보내는 방법은?
return (new FastExcel(User::all()))->export('formatted_users.xlsx', function ($user) {
return [
'Full Name' => $user->firstname . ' ' . $user->lastname,
'Email Address' => $user->email,
'Member Since' => $user->created_at->format('Y-m-d'),
'Status' => $user->is_active ? 'Active' : 'Suspended'
];
});
데이터를 직접 데이터베이스에 가져오기
행을 수동으로 가져오는 대신, Fast-Excel은 각 행을 처리하고 직접 데이터베이스에 삽입할 수 있습니다. 이는 관리자 대량 업로드에 이상적이며 대량 데이터베이스 삽입, 더 깔끔한 코드, 수동 처리 감소, 쉬운 관리자 워크플로 등과 같은 큰 이점을 제공합니다. 특히 HR 시스템, CRM, 전자상거래 플랫폼에 유용합니다. 여기에는 PHP 애플리케이션 내에서 데이터베이스로 데이터를 가져오는 방법을 보여주는 유용한 예제가 있습니다.
PHP 라이브러리를 통해 데이터를 데이터베이스에 직접 가져오는 방법은?
use Rap2hpoutre\FastExcel\FastExcel;
use App\Models\User;
(new FastExcel)->import('users.xlsx', function ($line) {
return User::create([
'name' => $line['Name'],
'email' => $line['Email'],
]);
});
PHP를 통한 맞춤 열 매핑 및 서식 지정
데이터베이스 컬럼은 항상 사람이 읽기 쉬운 형태는 아닙니다. Fast-Excel 라이브러리는 사용자 정의 컬럼 또는 행 매핑 및 포맷팅에 대한 완전한 지원을 포함하고 있습니다. 이 기능을 통해 내보낼 속성을 정확히 정의하고 값을 실시간으로 재포맷할 수 있습니다. 성을 대문자로 변환하거나, 이름과 성을 결합하거나, ‘user_id’를 ‘직원 식별자’로 이름을 바꾸는 등, 클로저를 사용하면 최종 출력 배열을 완전히 제어할 수 있습니다.