Импорт и экспорт файлов Excel, CSV и ODS через бесплатную библиотеку PHP

Open Source PHP API, позволяющий разработчикам импортировать и экспортировать файлы MS Excel. Узнайте о его функциях, преимуществах и примерах кода для эффективной работы с большими наборами данных.

Что такое Fast-Excel?

Fast-Excel — это лёгкий PHP‑пакет, разработанный для упрощения операций импорта/экспорта Excel и CSV в приложениях Laravel. Построенный на основе OpenSpout, он ориентирован на скорость, низкое потребление памяти и удобный для разработчиков синтаксис. В отличие от более тяжёлых библиотек работы с таблицами, Fast-Excel идеален для проектов, которым требуется простая и эффективная работа с электронными таблицами без лишней сложности. Он поддерживает экспорт и импорт файлов XLSX, CSV и ODS, при этом потребление памяти остаётся удивительно низким.

Fast-Excel особенно полезен для разработчиков, которым необходимо обрабатывать большие файлы Excel, CSV или ODS без ограничения памяти. Традиционные библиотеки часто загружают весь набор данных в память, но Fast-Excel использует потоковые техники для эффективной обработки данных. Библиотека широко используется для экспорта записей базы данных в таблицы, импорта пользовательских данных или отчетов, динамического создания больших отчетов, упрощения работы с Excel в приложениях Laravel и т.д. Благодаря чистому API и минимальной конфигурации, Fast-Excel сокращает время разработки и повышает производительность.

Previous Next

Начало работы с Fast-Excel

Рекомендуемый способ установить Fast-Excel в ваш проект — использовать Composer. Пожалуйста, используйте следующую команду для беспроблемной установки

Установите Fast-Excel через Composer

 composer require rap2hpoutre/fast-excel

Вы также можете клонировать проект с помощью Git, запустив

Экспорт коллекций в файлы Excel с помощью PHP

Fast-Excel делает экспорт коллекций или моделей в Excel невероятно простым. Всего несколькими строками кода вы можете генерировать файлы .xlsx, .csv или .ods. Эта функция устраняет шаблонный код и ускоряет разработку, особенно для панелей мониторинга или систем отчетности. Ниже приведён пример, демонстрирующий, как экспортировать данные в файл MS Excel XLSX с помощью PHP‑кода. Библиотека преобразует коллекцию Laravel напрямую в файл Excel без необходимости сложных конфигураций.

Как экспортировать данные в файл Excel XLSX с помощью PHP-библиотеки?

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 поддерживает низкое потребление памяти и простой синтаксис для импорта и экспорта данных. Это флагманская функция для работы с «большими данными». Вместо загрузки миллиона пользователей в массив вы используете cursor() Laravel или собственный генератор yield. Экспортер обрабатывает каждую строку по отдельности, записывает её в файл и освобождает из памяти. Это сохраняет постоянное (очень низкое) использование памяти независимо от того, экспортируете ли вы 100 строк или 10 миллионов строк.

Как экспортировать определённые поля с пользовательскими заголовками в 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’ в ‘Идентификатор сотрудника’, замыкание даёт вам полный контроль над конечным массивом вывода.

 Русский