Чтение excel файла в PHP

При построении различных сервисов, иногда бывает необходимость прочитать xlsx документ и с данными, которые в нем содержатся что-то сделать, записать в базу, вывести на страницу или переформатировать и снова записать в файл, вариантов много. В предыдущей статье, был описан процесс создания excel документов при помощи php, почитать можно здесь В этой статье будет использоваться тот же пакет phpoffice/phpspreadsheet, для работы с документами excel.

Структура проекта

├── Файл index.php
├── Файл composer.json
├── Обрабатываемый файл xlsx

Шаг 1 — установка пакета phpoffice/phpspreadsheet

Данная статья написана, с учетом того, что composer у Вас установлен, поэтому переходим к созданию файла composer.json, его содержание:

{
    "require": {
      "phpoffice/phpspreadsheet": "^1.18"
    }
}

В этой же директории запускаем команду composer require

После успешного выполнения этой команды, произойдет установка необходимых пакетов, с зависимостями, структура немного изменится, будет такой:

├── Файл index.php
├── Файл composer.json
├── Файл composer.lock
├── Обрабатываемый файл xlsx
├── Директория vendor
   └── Директории с файлами пакетов

Файл xlsx у меня с таким содержимым:


файл xlsx

В самом простом примере прочитаем файл xlsx в массив и выведем функцией print_r, для этого необходимо написать index.php, код будет такой:

<?php
set_include_path(__DIR__);

require './vendor/autoload.php';


use PhpOffice\PhpSpreadsheet\Reader\Xlsx;

$inputFileName = __DIR__ . '/file32342.xlsx';

$reader = new Xlsx();
$spreadsheet = $reader->load($inputFileName);

$sheetData = $spreadsheet->getActiveSheet()->toArray(null, true, true, true);

echo '<pre>';
print_r($sheetData);
echo '</pre>';

В результате выполнения этого кода, увидим вот такой распечатанный массив:

Array
(
    [1] => Array
        (
            [A] => Значение А1
            [B] => Значение В1
            [C] => Значение С1
            [D] => Значение D1
            [E] => Значение E1
            [F] => Значение F1
            [G] => Значение G1
            [H] => Значение H1
            [I] => Значение I1
            [J] => Значение J1
            [K] => Значение K1
            [L] => Значение L1
            [M] => Значение M1
        )

    [2] => Array
        (
            [A] => Значение А2
            [B] => Значение В2
            [C] => Значение С2
            [D] => Значение D2
            [E] => Значение E2
            [F] => Значение F2
            [G] => Значение G2
            [H] => Значение H2
            [I] => Значение I2
            [J] => Значение J2
            [K] => Значение K2
            [L] => Значение L2
            [M] => Значение M2
        )

    [3] => Array
        (
            [A] => Значение А3
            [B] => Значение В3
            [C] => Значение С3
            [D] => Значение D3
            [E] => Значение E3
            [F] => Значение F3
            [G] => Значение G3
            [H] => Значение H3
            [I] => Значение I3
            [J] => Значение J3
            [K] => Значение K3
            [L] => Значение L3
            [M] => Значение M3
        )

    [4] => Array
        (
            [A] => Значение А4
            [B] => Значение В4
            [C] => Значение С4
            [D] => Значение D4
            [E] => Значение E4
            [F] => Значение F4
            [G] => Значение G4
            [H] => Значение H4
            [I] => Значение I4
            [J] => Значение J4
            [K] => Значение K4
            [L] => Значение L4
            [M] => Значение M4
        )

    [5] => Array
        (
            [A] => Значение А5
            [B] => Значение В5
            [C] => Значение С5
            [D] => Значение D5
            [E] => Значение E5
            [F] => Значение F5
            [G] => Значение G5
            [H] => Значение H5
            [I] => Значение I5
            [J] => Значение J5
            [K] => Значение K5
            [L] => Значение L5
            [M] => Значение M5
        )

    [6] => Array
        (
            [A] => Значение А6
            [B] => Значение В6
            [C] => Значение С6
            [D] => Значение D6
            [E] => Значение E6
            [F] => Значение F6
            [G] => Значение G6
            [H] => Значение H6
            [I] => Значение I6
            [J] => Значение J6
            [K] => Значение K6
            [L] => Значение L6
            [M] => Значение M6
        )

    [7] => Array
        (
            [A] => Значение А7
            [B] => Значение В7
            [C] => Значение С7
            [D] => Значение D7
            [E] => Значение E7
            [F] => Значение F7
            [G] => Значение G7
            [H] => Значение H7
            [I] => Значение I7
            [J] => Значение J7
            [K] => Значение K7
            [L] => Значение L7
            [M] => Значение M7
        )

    [8] => Array
        (
            [A] => Значение А8
            [B] => Значение В8
            [C] => Значение С8
            [D] => Значение D8
            [E] => Значение E8
            [F] => Значение F8
            [G] => Значение G8
            [H] => Значение H8
            [I] => Значение I8
            [J] => Значение J8
            [K] => Значение K8
            [L] => Значение L8
            [M] => Значение M8
        )

    [9] => Array
        (
            [A] => Значение А9
            [B] => Значение В9
            [C] => Значение С9
            [D] => Значение D9
            [E] => Значение E9
            [F] => Значение F9
            [G] => Значение G9
            [H] => Значение H9
            [I] => Значение I9
            [J] => Значение J9
            [K] => Значение K9
            [L] => Значение L9
            [M] => Значение M9
        )

    [10] => Array
        (
            [A] => Значение А10
            [B] => Значение В10
            [C] => Значение С10
            [D] => Значение D10
            [E] => Значение E10
            [F] => Значение F10
            [G] => Значение G10
            [H] => Значение H10
            [I] => Значение I10
            [J] => Значение J10
            [K] => Значение K10
            [L] => Значение L10
            [M] => Значение M10
        )

    [11] => Array
        (
            [A] => Значение А11
            [B] => Значение В11
            [C] => Значение С11
            [D] => Значение D11
            [E] => Значение E11
            [F] => Значение F11
            [G] => Значение G11
            [H] => Значение H11
            [I] => Значение I11
            [J] => Значение J11
            [K] => Значение K11
            [L] => Значение L11
            [M] => Значение M11
        )

    [12] => Array
        (
            [A] => Значение А12
            [B] => Значение В12
            [C] => Значение С12
            [D] => Значение D12
            [E] => Значение E12
            [F] => Значение F12
            [G] => Значение G12
            [H] => Значение H12
            [I] => Значение I12
            [J] => Значение J12
            [K] => Значение K12
            [L] => Значение L12
            [M] => Значение M12
        )

    [13] => Array
        (
            [A] => Значение А13
            [B] => Значение В13
            [C] => Значение С13
            [D] => Значение D13
            [E] => Значение E13
            [F] => Значение F13
            [G] => Значение G13
            [H] => Значение H13
            [I] => Значение I13
            [J] => Значение J13
            [K] => Значение K13
            [L] => Значение L13
            [M] => Значение M13
        )

    [14] => Array
        (
            [A] => Значение А14
            [B] => Значение В14
            [C] => Значение С14
            [D] => Значение D14
            [E] => Значение E14
            [F] => Значение F14
            [G] => Значение G14
            [H] => Значение H14
            [I] => Значение I14
            [J] => Значение J14
            [K] => Значение K14
            [L] => Значение L14
            [M] => Значение M14
        )

    [15] => Array
        (
            [A] => Значение А15
            [B] => Значение В15
            [C] => Значение С15
            [D] => Значение D15
            [E] => Значение E15
            [F] => Значение F15
            [G] => Значение G15
            [H] => Значение H15
            [I] => Значение I15
            [J] => Значение J15
            [K] => Значение K15
            [L] => Значение L15
            [M] => Значение M15
        )

    [16] => Array
        (
            [A] => Значение А16
            [B] => Значение В16
            [C] => Значение С16
            [D] => Значение D16
            [E] => Значение E16
            [F] => Значение F16
            [G] => Значение G16
            [H] => Значение H16
            [I] => Значение I16
            [J] => Значение J16
            [K] => Значение K16
            [L] => Значение L16
            [M] => Значение M16
        )

    [17] => Array
        (
            [A] => Значение А17
            [B] => Значение В17
            [C] => Значение С17
            [D] => Значение D17
            [E] => Значение E17
            [F] => Значение F17
            [G] => Значение G17
            [H] => Значение H17
            [I] => Значение I17
            [J] => Значение J17
            [K] => Значение K17
            [L] => Значение L17
            [M] => Значение M17
        )

    [18] => Array
        (
            [A] => Значение А18
            [B] => Значение В18
            [C] => Значение С18
            [D] => Значение D18
            [E] => Значение E18
            [F] => Значение F18
            [G] => Значение G18
            [H] => Значение H18
            [I] => Значение I18
            [J] => Значение J18
            [K] => Значение K18
            [L] => Значение L18
            [M] => Значение M18
        )

    [19] => Array
        (
            [A] => Значение А19
            [B] => Значение В19
            [C] => Значение С19
            [D] => Значение D19
            [E] => Значение E19
            [F] => Значение F19
            [G] => Значение G19
            [H] => Значение H19
            [I] => Значение I19
            [J] => Значение J19
            [K] => Значение K19
            [L] => Значение L19
            [M] => Значение M19
        )

    [20] => Array
        (
            [A] => Значение А20
            [B] => Значение В20
            [C] => Значение С20
            [D] => Значение D20
            [E] => Значение E20
            [F] => Значение F20
            [G] => Значение G20
            [H] => Значение H20
            [I] => Значение I20
            [J] => Значение J20
            [K] => Значение K20
            [L] => Значение L20
            [M] => Значение M20
        )

    [21] => Array
        (
            [A] => Значение А21
            [B] => Значение В21
            [C] => Значение С21
            [D] => Значение D21
            [E] => Значение E21
            [F] => Значение F21
            [G] => Значение G21
            [H] => Значение H21
            [I] => Значение I21
            [J] => Значение J21
            [K] => Значение K21
            [L] => Значение L21
            [M] => Значение M21
        )

    [22] => Array
        (
            [A] => Значение А22
            [B] => Значение В22
            [C] => Значение С22
            [D] => Значение D22
            [E] => Значение E22
            [F] => Значение F22
            [G] => Значение G22
            [H] => Значение H22
            [I] => Значение I22
            [J] => Значение J22
            [K] => Значение K22
            [L] => Значение L22
            [M] => Значение M22
        )

    [23] => Array
        (
            [A] => Значение А23
            [B] => Значение В23
            [C] => Значение С23
            [D] => Значение D23
            [E] => Значение E23
            [F] => Значение F23
            [G] => Значение G23
            [H] => Значение H23
            [I] => Значение I23
            [J] => Значение J23
            [K] => Значение K23
            [L] => Значение L23
            [M] => Значение M23
        )

    [24] => Array
        (
            [A] => Значение А24
            [B] => Значение В24
            [C] => Значение С24
            [D] => Значение D24
            [E] => Значение E24
            [F] => Значение F24
            [G] => Значение G24
            [H] => Значение H24
            [I] => Значение I24
            [J] => Значение J24
            [K] => Значение K24
            [L] => Значение L24
            [M] => Значение M24
        )

    [25] => Array
        (
            [A] => Значение А25
            [B] => Значение В25
            [C] => Значение С25
            [D] => Значение D25
            [E] => Значение E25
            [F] => Значение F25
            [G] => Значение G25
            [H] => Значение H25
            [I] => Значение I25
            [J] => Значение J25
            [K] => Значение K25
            [L] => Значение L25
            [M] => Значение M25
        )

    [26] => Array
        (
            [A] => Значение А26
            [B] => Значение В26
            [C] => Значение С26
            [D] => Значение D26
            [E] => Значение E26
            [F] => Значение F26
            [G] => Значение G26
            [H] => Значение H26
            [I] => Значение I26
            [J] => Значение J26
            [K] => Значение K26
            [L] => Значение L26
            [M] => Значение M26
        )

    [27] => Array
        (
            [A] => Значение А27
            [B] => Значение В27
            [C] => Значение С27
            [D] => Значение D27
            [E] => Значение E27
            [F] => Значение F27
            [G] => Значение G27
            [H] => Значение H27
            [I] => Значение I27
            [J] => Значение J27
            [K] => Значение K27
            [L] => Значение L27
            [M] => Значение M27
        )

    [28] => Array
        (
            [A] => Значение А28
            [B] => Значение В28
            [C] => Значение С28
            [D] => Значение D28
            [E] => Значение E28
            [F] => Значение F28
            [G] => Значение G28
            [H] => Значение H28
            [I] => Значение I28
            [J] => Значение J28
            [K] => Значение K28
            [L] => Значение L28
            [M] => Значение M28
        )

    [29] => Array
        (
            [A] => Значение А29
            [B] => Значение В29
            [C] => Значение С29
            [D] => Значение D29
            [E] => Значение E29
            [F] => Значение F29
            [G] => Значение G29
            [H] => Значение H29
            [I] => Значение I29
            [J] => Значение J29
            [K] => Значение K29
            [L] => Значение L29
            [M] => Значение M29
        )

    [30] => Array
        (
            [A] => Значение А30
            [B] => Значение В30
            [C] => Значение С30
            [D] => Значение D30
            [E] => Значение E30
            [F] => Значение F30
            [G] => Значение G30
            [H] => Значение H30
            [I] => Значение I30
            [J] => Значение J30
            [K] => Значение K30
            [L] => Значение L30
            [M] => Значение M30
        )

)

В итоге все достаточно просто, каждая линия будет соответствовать номеру многомерного массива, где именами ключей будут выступать колонки их excel файла.

Теги:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *



Рекламный блок, для развития проекта