Skip to content

Repository files navigation

github action status

Парсер Excel файлов

Приложение, написанное на фреймворке Laravel для парсинга файлов Excel, имеющих определенную структуру данных.

Установка

Понадобятся установленные composer и php 8.2 или выше с установленным sqlite3.

Скопируйте репозиторий себе на компьютер и установите зависимости:

composer install

Скопировать содержимое файла .env.example в файл .env:

cp .env.example .env

Генерация уникального ключа приложения:

php artisan key:generate

В файле .env следует поменять базу данных на sqlite:

DB_CONNECTION=sqlite
#DB_HOST=127.0.0.1
#DB_PORT=3306
#DB_DATABASE=test_excel
#DB_USERNAME=
#DB_PASSWORD=

Установка базы данных sqlite (создание файла базы данных database.sqlite)

touch database/database.sqlite

Создать необходимые таблицы в базе данных (накатить миграции):

php artisan migrate

Так как файлы изображений для базы данных сохраняются в папке storage/app/public, необходимо установить связь с папкой public/storage, доступной публично при запуске сервера. Делается это следующей командой:

php artisan storage:link

Запустить сервер по адресу localhost:8000, использовать приложение в браузере.

php artisan serve

Или запустить тесты

php artisan test

Использование приложения и описание

В папке tests/fixtures находится тестовый файл import_example.xlsx, который можно использовать для импорта данных.

Импорт производится на странице "Импорт" через форму загрузки файла, просмотр результатов импорта возможен на странице "Товары".

Каждый товар имеет отдельную индивидуальную страницу с отображением всех характеристик, внесенных в базу данных. На общей странице "Товары" название товара в таблице является ссылкой на индивидуальную страницу.

В базе данных приложения используется 3 таблицы: products, product_characteristics, product_photos.

Основные характеристики товара сохраняются в таблицу products, колонки таблицы соответствуют основным характеристикам (название, описание, внешний код, штрихкоды и т.д.).

В таблице product_characteristics, связанной с таблицей products внешним ключом по product_id, свойства хранятся в виде колонок key, value.

Изображения скачиваются по ссылкам, данным в таблице excel и сохраняются в хранилище приложения в папке storage/app/public. В базу данных сохраняется внешняя ссылка, путь в хранилище и само изображение.

Отображение фотографий товаров производится загрузкой изображения из базы данных. Альтернативно возможна подстановка ссылки на файл в локальном хранилище приложения.

! Импорт данных может производится медленно из-за загрузки изоображений как на локальный диск, так и в базу данных. В будущем для оптимизации времени работы можно будет выбрать один предпочтительный способ хранения фотографий.

Спасибо за внимание!

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages