Освоение PHP: простое преобразование Excel в массив

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

Метод 1: библиотека PHPExcel (устарела)
Если вы работаете со старой версией PHP, вы можете столкнуться с библиотекой PHPExcel. Хотя сейчас он устарел, о нем стоит упомянуть, поскольку он широко использовался в прошлом. Чтобы преобразовать файл Excel в массив с помощью PHPExcel, выполните следующие действия:

// Include the PHPExcel library
require_once 'PHPExcel.php';
// Create a PHPExcel object
$excel = PHPExcel_IOFactory::load('path/to/excel_file.xlsx');
// Select the active sheet
$sheet = $excel->getActiveSheet();
// Get the highest row and column indexes
$highestRow = $sheet->getHighestRow();
$highestColumn = $sheet->getHighestColumn();
// Loop through each row and column to extract the data
$data = array();
for ($row = 1; $row <= $highestRow; $row++) {
    for ($col = 'A'; $col <= $highestColumn; $col++) {
        $data[$row][$col] = $sheet->getCell($col . $row)->getValue();
    }
}
// Output the array
print_r($data);

Метод 2: библиотека PHPSpreadsheet (рекомендуется)
PHPExcel устарел, и его преемником является PHPSpreadsheet, который обеспечивает более современный и многофункциональный подход к работе с Excel. Чтобы преобразовать файл Excel в массив с помощью PHPSpreadsheet, выполните следующие действия:

// Include the PHPSpreadsheet library
require 'vendor/autoload.php';
use PhpOffice\PhpSpreadsheet\IOFactory;
// Load the Excel file
$spreadsheet = IOFactory::load('path/to/excel_file.xlsx');
// Select the active sheet
$sheet = $spreadsheet->getActiveSheet();
// Get all the data into an array
$data = $sheet->toArray();
// Output the array
print_r($data);

Метод 3: библиотека Spout (эффективное использование памяти)
Если использование памяти является проблемой, особенно при работе с большими файлами Excel, библиотека Spout предоставляет эффективное решение. Он использует потоковую передачу для чтения данных из файла без загрузки всего содержимого в память. Вот пример:

// Include the Spout library
require 'vendor/autoload.php';
use Box\Spout\Reader\Common\Creator\ReaderEntityFactory;
// Create a reader object
$reader = ReaderEntityFactory::createXLSXReader();
// Open the Excel file
$reader->open('path/to/excel_file.xlsx');
// Iterate through each row and extract the data
$data = array();
foreach ($reader->getSheetIterator() as $sheet) {
    foreach ($sheet->getRowIterator() as $row) {
        $data[] = $row->toArray();
    }
}
// Close the reader
$reader->close();
// Output the array
print_r($data);

Преобразование файлов Excel в массивы — распространенная задача в веб-разработке. В этой статье мы рассмотрели три различных метода достижения этой цели с помощью PHP. Библиотека PHPExcel (устарела), библиотека PHPSpreadsheet (рекомендуется) и библиотека Spout (с эффективным использованием памяти) предоставляют надежные способы извлечения данных из файлов Excel и преобразования их в массивы. Выберите метод, который лучше всего соответствует вашим потребностям, и начните использовать возможности PHP для легкой обработки данных Excel.