Вывод данных с Excel-файла

Чтение данных с Excel

Работать с файлом Excel можно через библиотеку PHPExcel. Данная библиотека понимает форматы «xlsx» и «xls».

Ссылка на библиотеку: https://github.com/PHPOffice/PHPExcel

Код ниже выводит содержимое Excel-файла:

include 'PHPExcel/IOFactory.php'; // IOFactory отвечает за чтение Excel-файлов

$file = 'path/to/file.xlsx'; // файл для получения данных

$excel = PHPExcel_IOFactory::load($file); // подключить Excel-файл
$excel->setActiveSheetIndex(0); // получить данные из указанного листа

$sheet = $excel->getActiveSheet();

// формирование html-кода с данными
$html = '<table>';
foreach ($sheet->getRowIterator() as $row) {
    $html .= '<tr>';
    $cellIterator = $row->getCellIterator();
    foreach ($cellIterator as $cell) {

        // значение текущей ячейки
        $value = $cell->getCalculatedValue();

        // если дата, то преобразовать в формат PHP
        if (PHPExcel_Shared_Date::isDateTime($cell)) {
            $value = date('d.m.Y', PHPExcel_Shared_Date::ExcelToPHP($cell->getValue()));
        }

        $html .= '<td>'.$value.'</td>';
    }
    $html .= '<tr>';
}
$html .= '</table>';

// вывод данных
echo $html;

Стоит обратить внимание на метод PHPExcel_Shared_Date::ExcelToPHP().

Excel хранит дату как число дней, прошедшего с 1 января 1900 года. А PHP хранит дату как число секунд, прошедшего с 1 января 1970. Для преобразование формат даты из Excel в PHP используется функция PHPExcel_Shared_Date::ExcelToPHP().

Вывод значения указанной ячейки

Если надо вывести значение только указанной ячейки, то можно использовать метод getCell() или getCellByColumnAndRow().

# настройки как на примере выше
$sheet = $excel->getActiveSheet();

# Получить значение из ячейки
$cell = $sheet->getCell('A1'); // 1-ый способ
$cell = $sheet->getCellByColumnAndRow(0, 1); // 2-ой способ

# Вывод значения
echo $cell->getValue();