Парсинг xls и xlsx в Битрикс

Пользоваться будем библиотекой PhpSpreadsheet. Для начала установим её с помощью Composer

composer require phpoffice/phpspreadsheet

после установки мы можем использовать функционал библиотеки.

Показываю пример из реального проекта, скрыв кофиденциальные данные, думаю дальше под себя можно подогнать

<?php
require($_SERVER["DOCUMENT_ROOT"] . "/bitrix/header.php");
global $USER, $APPLICATION;
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
use PhpOffice\PhpSpreadsheet\IOFactory;
use PhpOffice\PhpSpreadsheet\Shared\Date;
if ($USER->IsAdmin()) {
    $oSpreadsheet = IOFactory::load("files/excel_file.xlsx");
    $oCells = $oSpreadsheet->getActiveSheet()->getCellCollection();
    $cells = $oSpreadsheet->getSheetByName('Sheet 1')->getCellCollection();
    //получаем кол-во строк
    $max = $cells->getHighestRow();
    //Начинаем со второй строки, если первая - это заголовки
    for ($row = 2; $row <= $max; $row++) {
        $email = $cells->get('D' . $row)->getValue();
        $id = $cells->get('E' . $row)->getValue();
        //делаем что - то с данными
    }
} else {
    //можем кинут сюда что нибудь если не админ, например 404 ошибку
}
require($_SERVER["DOCUMENT_ROOT"] . "/bitrix/footer.php");

На это всё. Удвчной Вам разработки и адекватных клиентов!

Коментарии

Коментарии отсутствуют, будьте первым(ой) кто напишет под этим постом!

Написать коментарий