Освоение PHPSpreadsheet: экспорт массивов в Excel стал проще

В этой статье блога мы окунемся в удивительный мир PHPSpreadsheet и рассмотрим различные методы простого экспорта массивов в Excel. PHPSpreadsheet — это мощная библиотека PHP, которая позволяет читать, записывать и манипулировать файлами электронных таблиц. Независимо от того, являетесь ли вы опытным разработчиком или только начинаете осваивать PHP, это руководство предоставит вам знания и примеры кода, необходимые для профессионального экспорта данных массива в Excel.

Метод 1: использование цикла
Один простой подход — перебрать массив и соответствующим образом заполнить ячейки Excel. Предположим, у нас есть массив $data, содержащий данные, которые мы хотим экспортировать. Вот фрагмент кода, позволяющий это сделать:

use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
// Create a new Excel spreadsheet
$spreadsheet = new Spreadsheet();
// Select the active sheet
$sheet = $spreadsheet->getActiveSheet();
// Set the array data into cells
$row = 1;
foreach ($data as $item) {
    $column = 1;
    foreach ($item as $value) {
        $sheet->setCellValueByColumnAndRow($column, $row, $value);
        $column++;
    }
    $row++;
}
// Save the spreadsheet as a file
$writer = new Xlsx($spreadsheet);
$writer->save('path/to/file.xlsx');

Метод 2: использование метода fromArray
PHPSpreadsheet предоставляет удобный метод под названием fromArray, который позволяет напрямую заполнять диапазон ячеек массивом. Вот пример:

use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
// Create a new Excel spreadsheet
$spreadsheet = new Spreadsheet();
// Select the active sheet
$sheet = $spreadsheet->getActiveSheet();
// Set the array data into cells
$data = [
    ['Name', 'Age', 'Location'],
    ['John Doe', 25, 'New York'],
    ['Jane Smith', 30, 'London'],
    // ...
];
$sheet->fromArray($data, null, 'A1');
// Save the spreadsheet as a file
$writer = new Xlsx($spreadsheet);
$writer->save('path/to/file.xlsx');

Метод 3: использование метода createSheet
Если вы хотите экспортировать несколько массивов на разные листы в одном файле Excel, вы можете использовать метод createSheet. Вот пример:

use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
// Create a new Excel spreadsheet
$spreadsheet = new Spreadsheet();
// Exporting Array 1
$data1 = [
    ['Name', 'Age'],
    ['John Doe', 25],
    ['Jane Smith', 30],
    // ...
];
$sheet1 = $spreadsheet->getActiveSheet();
$sheet1->fromArray($data1, null, 'A1');
// Exporting Array 2
$data2 = [
    ['Product', 'Price'],
    ['Apple', 1.99],
    ['Banana', 0.99],
    // ...
];
$sheet2 = $spreadsheet->createSheet();
$sheet2->fromArray($data2, null, 'A1');
// Save the spreadsheet as a file
$writer = new Xlsx($spreadsheet);
$writer->save('path/to/file.xlsx');

Экспортировать массивы в Excel с помощью PHPSpreadsheet очень просто, если в вашем распоряжении есть эти методы. Независимо от того, предпочитаете ли вы использовать циклы, метод fromArrayили создавать несколько листов, PHPSpreadsheet обеспечивает гибкость и простоту использования. Теперь вы можете уверенно преобразовывать данные массива в красивые таблицы Excel с помощью всего лишь нескольких строк кода.