В этой статье блога мы окунемся в удивительный мир 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 с помощью всего лишь нескольких строк кода.