Добрый день!
На академии есть статьи про возможность импорта только из .xlsx файлов.
Кто-нибудь сталкивался с необходимостью импортировать в раздел данные из файлов с форматом *.txt? Если да, какие действия вы предприняли, чтобы получился корректный импорт?
Нравится
В txt-файле могут быть в самых разных форматах: от CSV до XML или JSON, или же какие-то собственные соглашения. В зависимости от формата и нужно придумывать логику импорта.
Допустим, формат обычный, сверху вниз идут определённые ключи и через знак равенства им присваиваются значения. Логику импорта придумать не проблема. Вопрос в том, как её внедрить в стандартный режим? Что переопределять, расширять? Возможно ли это вообще?
Эх. Есть тут пара клиентов, для которых нажать 3 кнопки и соотнести столбцы в .xls файле - непосильная задача. Пришлось делать импорт в 1 клик. В кратце по импорту абсолюно любого файла в систему:
1) делаем кнопку для вызова окошка выбора файла (подсмотреть можно в fileDetail)
2) Ломаем onFileUpload и upload методы, в upload указываем ссылку на собственный сервис.
3) Пилим C# сервис, куда приходит стрим с данными(они приходят в обёртке, там надо унаследовать интерфейс), из данных берём стрим с файлом.
4) Далее всё зависит от вашей фантазии. Парсите какие угодно файлы, каким угодно способом, используйте любые сторонние библиотеки, результат сохраняйте в бд через entity.
Кузнецов Сергей пишет:
как её внедрить в стандартный режим?
Это в ImportWizard? Ну... в теории можно разломать визард. Но тогда придётся один раз вычитывать файл(по какой-то определённой логике), брать колонки, присылать в js ответ с конфигом, генерить страницу с соответсятвием колонок и потом посылать вместе со стримом файла объект с мэппингом куда что вставлять. Опять же объект принять в своём сервисе и самому парсить... Так скажу: на импорт pdf я убил довольно много времени, лучше не надо эту гору кода трогать)