Excel-ent-способы чтения файлов XLSX на PHP: подробное руководство

Если вы работаете с PHP и вам нужно читать данные из файлов XLSX (файлы Microsoft Excel), вы попали по адресу! В этой статье блога мы познакомим вас с различными методами чтения файлов XLSX с помощью PHP. Мы рассмотрим различные библиотеки и подходы, попутно предоставляя разговорные объяснения и примеры кода. Итак, давайте углубимся и раскроем секреты чтения файлов XLSX с помощью PHP!

Метод 1: библиотека PHPExcel (устаревшая версия)
Одной популярной библиотекой для чтения файлов XLSX в PHP является PHPExcel. Хотя это устаревшая библиотека и больше не поддерживается активно, она все равно может быть полезна в определенных сценариях. Чтобы использовать PHPExcel, вам необходимо загрузить и включить библиотеку в свой проект. Вот фрагмент кода, который поможет вам начать:

require 'PHPExcel/PHPExcel.php';
$reader = PHPExcel_IOFactory::createReaderForFile('path/to/file.xlsx');
$reader->setReadDataOnly(true);
$excel = $reader->load('path/to/file.xlsx');
$worksheet = $excel->getActiveSheet();
$highestRow = $worksheet->getHighestRow();
$highestColumn = $worksheet->getHighestColumn();
for ($row = 1; $row <= $highestRow; $row++) {
    for ($column = 'A'; $column <= $highestColumn; $column++) {
        $cellValue = $worksheet->getCell($column . $row)->getValue();
        // Process cell value as needed
    }
}

Метод 2: библиотека PHPSpreadsheet (рекомендуется)
PHPSpreadsheet — это современная и активно поддерживаемая библиотека, предлагающая мощные функции для работы с электронными таблицами, включая чтение файлов XLSX. Он является преемником PHPExcel и предоставляет более интуитивно понятный и эффективный API. Чтобы начать работу с PHPSpreadsheet, вы можете использовать Composer для установки библиотеки. Вот пример того, как читать файл XLSX с помощью PHPSpreadsheet:

require 'vendor/autoload.php';
use PhpOffice\PhpSpreadsheet\IOFactory;
$spreadsheet = IOFactory::load('path/to/file.xlsx');
$worksheet = $spreadsheet->getActiveSheet();
$highestRow = $worksheet->getHighestRow();
$highestColumn = $worksheet->getHighestColumn();
foreach ($worksheet->getRowIterator() as $row) {
    foreach ($row->getCellIterator() as $cell) {
        $cellValue = $cell->getValue();
        // Process cell value as needed
    }
}

Метод 3: библиотека SimpleXLSX
Если вы предпочитаете облегченное решение, вы можете рассмотреть возможность использования библиотеки SimpleXLSX. Это однофайловая библиотека, ориентированная на простоту и удобство использования. Вот пример того, как читать файл XLSX с помощью SimpleXLSX:

require 'SimpleXLSX.php';
if ($xlsx = SimpleXLSX::parse('path/to/file.xlsx')) {
    list($cols,) = $xlsx->dimension();
    foreach ($xlsx->rows() as $row) {
        for ($i = 0; $i < $cols; $i++) {
            $cellValue = $row[$i];
            // Process cell value as needed
        }
    }
}

Чтение файлов XLSX в PHP — распространенная задача, и мы рассмотрели три метода ее выполнения. Библиотека PHPExcel, библиотека PHPSpreadsheet и библиотека SimpleXLSX имеют свои преимущества и удовлетворяют различным требованиям. Независимо от того, выберете ли вы устаревшую библиотеку PHPExcel, рекомендуемую библиотеку PHPSpreadsheet или облегченную библиотеку SimpleXLSX, теперь у вас есть инструменты для легкого извлечения данных из файлов XLSX. Приятного кодирования!