WEBYK WEBYK Індивідуальні OnLine уроки з web технологій
+38 093 766 39 11
oleggpann@gmail.com

Получение данных из Excel в PHP

 

 

 

Пример получение данных из Excel в PHP

 

Мы будем использовать библиотеку PhpSpreadsheet (https://phpspreadsheet.readthedocs.io/en/latest/).

Установить ее можно через Composer:

 

php -d extension=phar.so composer.phar require phpoffice/phpspreadsheet

 

В html файлике создадим форму для загрузки файлов:

 

<form id="form-filtr" action="excel.php" method="POST" enctype="multipart/form-data">

        Отправить этот файл:

       <input name="userfile" type="file" accept="application/vnd.ms-excel"/>

       <input type="submit" value="Отправить файл" />

</form>

 

Для примера будем загружать такой файлик:

 

В php файде обработчике сохраним файл и используя библиотеку PhpSpreadsheet сохраним наши товары в массив.

 

<?php

// Класс, непосредственно читающий файл

use PhpOffice\PhpSpreadsheet\Spreadsheet;

use PhpOffice\PhpSpreadsheet\Writer\Xlsx;

use PhpOffice\PhpSpreadsheet\IOFactory;

if (isset($_FILES['userfile'])) { 

       $uploaddir = 'excel/';

        $uploadfile = $uploaddir . basename($_FILES['userfile']['name']);

        move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile);

        $file='excel/'.$_FILES['userfile']['name'];

         $reader = IOFactory::createReaderForFile($file);

         $reader->setReadDataOnly(true);

        // Читаем файл и записываем информацию в переменную

        $spreadsheet = $reader->load($file); 

       // Так можно достать объект Cells, имеющий доступ к содержимому ячеек

        $cells = $spreadsheet->getSheetByName('Лист1')->getCellCollection();

        // Далее перебираем все заполненные строки

        for ($row = 2; $row <= $cells->getHighestRow(); $row++){

            $array[$row]['id']=($cells->get('A'.$row))?$cells->get('A'.$row)->getValue():'';

            $array[$row]['name']=($cells->get('B'.$row))?$cells->get('B'.$row)->getValue():'';

            $array[$row]['description']=($cells->get('C'.$row))?$cells->get('C'.$row)->getValue():'';

            $array[$row]['price']=($cells->get('D'.$row))?$cells->get('D'.$row)->getValue():'';

            $array[$row]['currency']=($cells->get('E'.$row))?$cells->get('E'.$row)->getValue():'';

        }

?>

 

И получаем такой результат:

Array (    

[2] => Array

        (

           [id] => 1

           [name] => Товар1

           [description] => Описание1

           [price] => 182

           [currency] => UAH

       )

   [3] => Array

       (

           [id] => 2

           [name] => Товар2

           [description] => Описание2

            [price] => 564.2

           [currency] => UAH

       )

   [4] => Array

       (

           [id] => 3

           [name] => Товар3

           [description] => Описание3

           [price] => 607.6

           [currency] => UAH

       )

   [5] => Array

       (

            [id] => 4

           [name] => Товар4

           [description] => Описание4

           [price] => 296.8

           [currency] => UAH

       )

)

Теперь сохраним наш массив в базу данных

 

$servername = "localhost";

$database = "test_name";

$username = "test_user";

$password = "test_password";

// Создаем соединение

$conn = mysqli_connect($servername, $username, $password, $database);

// Проверяем соединение

if (!$conn) { die("Connection failed: " . mysqli_connect_error()); }

//Сохраняем наш массив в БД 

foreach($array as $value){

    $sql = "INSERT INTO Tovars (id, name, description, price, currency ) VALUES ($value['id'], $value['name'], $value['description'],                     $value['price'], $value['currency'])";

    if (mysqli_query($conn, $sql)) { 

           echo "Error: " . $sql . "<br>" . mysqli_error($conn);

    }

}

mysqli_close($conn);

Якщо у вас виникли питання, вбо ви бажаєте записатися на індивідуальний урок, замовити статтю (інструкцію) або придбати відеоурок, пишіть нам на:
скайп: olegg.pann
telegram, viber - +380937663911
додавайтесь у телеграм-канал: t.me/webyk
email: oleggpann@gmail.com
ми у fb: www.facebook.com/webprograming24
Обов`язково оперативно відповімо на усі запитіння


Поділіться в соцмережах




facebook
×
Підришіться на цікаві пости.
Підписатись