Foren / National / Russian / Модули и плагины / Плагин или Модуль для импорта данных из Excel в базу данных Cotonti

Kabak
#1 9. Januar 2025, 16:02

Есть ли такой инструмент или какое-нибудь решение такого импорта ?  или идею как это упростить и создать.

Alex300
#2 10. Januar 2025, 07:12

Готовое расширение - это врядли. Обычно они пишутся под конкретные задачи и формат файла. Вот это можно использовать для создания расширения: https://github.com/PHPOffice/PhpSpreadsheet

Есть миры, не здесь, там, где небеса горят, и моря засыпают, и реки дремлют; люди сделаны из дыма, а города – из песен. Где-то опасность, где-то несправедливость, даже где-то остыл чай. Идем Эйс, у нас много работы!...
...Sorry for my english...
Бесплатные расширения для Cotonti: https://lily-software.com/free-scripts/
prostogorod
#3 10. Januar 2025, 15:00

Еще можно использовать библиотеку box/spout позволяет читать Excel-файлы и писать в них построчно и очень быстро.

Kabak
#4 23. Februar 2025, 12:19
#48175 Alex300:

Готовое расширение - это врядли. Обычно они пишутся под конкретные задачи и формат файла. Вот это можно использовать для создания расширения: https://github.com/PHPOffice/PhpSpreadsheet

Как правильно подключить к движку PhpSpreadsheet ?

prostogorod
#5 23. Februar 2025, 13:23
#48296 Kabak:

Как правильно подключить к движку PhpSpreadsheet ?

 

Подключить можно с помощью  Composer. Можно почитать https://www.cotonti.com/forums?m=posts&q=9371

 install PhpSpreadsheet инструкция   https://phpspreadsheet.readthedocs.io/en/latest/#installation

 


Dieser Beitrag wurde von prostogorod (am 23. Februar 2025, 13:31, vor 4 Wochen) bearbeitet
Kabak
#6 23. Februar 2025, 14:40

Получается без устновленного на сервере Conposer и PhpSpreadsheet плагин по импорту из Excel в MySQL работать не будет ?

Alex300
#7 23. Februar 2025, 15:31

А разве composer на сервере проблема?
Даже если и так, можно все собрать локально, а потом перенести на сервер. И будет работать.

Есть миры, не здесь, там, где небеса горят, и моря засыпают, и реки дремлют; люди сделаны из дыма, а города – из песен. Где-то опасность, где-то несправедливость, даже где-то остыл чай. Идем Эйс, у нас много работы!...
...Sorry for my english...
Бесплатные расширения для Cotonti: https://lily-software.com/free-scripts/
Kabak
#8 23. Februar 2025, 15:36

т.е. Composer и PhpSpreadsheet нужны только для сборки плагина ?

 

Ведь функции будут из библиотеки PhpSpreadsheet вызываться.  т.е.  эта библиотека  в любм случае нужна или вместе с плгагином или на сервере

 

Или я туплю ?


Dieser Beitrag wurde von Kabak (am 23. Februar 2025, 15:43, vor 4 Wochen) bearbeitet
Kopusha
#9 23. Februar 2025, 16:18

С помошью Composer ставится на ваш сервер расширение  PhpSpreadsheet и уже его использует плагин. Как то так.

Kabak
#10 15. März 2025, 09:22
#48299 prostogorod:
#48296 Kabak:

Как правильно подключить к движку PhpSpreadsheet ?

 

Подключить можно с помощью  Composer. Можно почитать https://www.cotonti.com/forums?m=posts&q=9371

 install PhpSpreadsheet инструкция   https://phpspreadsheet.readthedocs.io/en/latest/#installation

 

1) Как правильно подключить его в код плагина для Cotonti ?

2) я туплю с путями .  Нужно в папки плагина скорировать  PhpSpreadsheet или как указать правильный путь на сервере ?

в их примере указан код 

require_once(__DIR__ . '/vendor/autoload.php');
//или
require 'vendor/autoload.php';
// всё равно не работает

$spreadsheet = new PhpOffice\PhpSpreadsheet\Spreadsheet();
$spreadsheet->getProperties();
$sheet = $spreadsheet->getActiveSheet();
$sheet->setCellValue('A1', 'Hello');
$sheet->setCellValue('B1', 'World');

$writer = new PhpOffice\PhpSpreadsheet\Writer\Xlsx($spreadsheet);
$writer->save('HelloWorld.xlsx');

но, он точно не будет работать , потому что пути к файлам библиотеки неправильно укзаны.

 

Как правильно подключить PhpSpreadsheet в код плагина для Cotonti ?


Dieser Beitrag wurde von Kabak (am 15. März 2025, 19:56, vor 1 Woche) bearbeitet
Alex300
#11 17. März 2025, 05:22

Как правильно подключить его в код плагина для Cotonti ?

Инструкция по установке.

В корне проекта выполнить

composer require phpoffice/phpspreadsheet

или

в файл composer.json в секцию require добавить строку

"phpoffice/phpspreadsheet": "^4.1"

и выполнить

composer update

Какой способ выбрать - разницы нет - результат будет одинаковый. В любом случае в composer.json будет добавлена нужная запись а в папку lib/vendor будет установлен PhpSpreadsheet со всеми засисимостями, готовый к использованию. Потом эту папку перенесете на production сервер, использовать на нем composer нет особой необходимости.

и далее в коде Вашего плагина:

<?php
/**
 * Этот файл работает с таблицами
 */

use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;

// ...
$spreadsheet = new Spreadsheet();
$activeWorksheet = $spreadsheet->getActiveSheet();
$activeWorksheet->setCellValue('A1', 'Hello World !');

// .. еще какие то действия с таблицами

$writer = new Xlsx($spreadsheet);
$writer->save('hello world.xlsx');

// ...

 

require_once(__DIR__ . '/vendor/autoload.php');
//или
require 'vendor/autoload.php';
// всё равно не работает

Автозагрузчик подключать самому не надо. Cotonti его сам подключает.

Есть миры, не здесь, там, где небеса горят, и моря засыпают, и реки дремлют; люди сделаны из дыма, а города – из песен. Где-то опасность, где-то несправедливость, даже где-то остыл чай. Идем Эйс, у нас много работы!...
...Sorry for my english...
Бесплатные расширения для Cotonti: https://lily-software.com/free-scripts/

Dieser Beitrag wurde von Alex300 (am 17. März 2025, 11:47, vor 1 Woche) bearbeitet
Kabak
#12 17. März 2025, 05:38

Да, нигде не было указано, что на сервере нужно зайти в корневую папку проекта и там пыполнить

composer require phpoffice/phpspreadsheet

 

всё заработало