Вопрос

Импорт данных из файлов *.txt

Добрый день!

На академии есть статьи про возможность импорта только из .xlsx файлов.

Кто-нибудь сталкивался с необходимостью импортировать в раздел данные из файлов с форматом *.txt? Если да, какие действия вы предприняли, чтобы получился корректный импорт?

Нравится

3 комментария

В txt-файле могут быть в самых разных форматах: от CSV до XML или JSON, или же какие-то собственные соглашения. В зависимости от формата и нужно придумывать логику импорта. 

Допустим, формат обычный, сверху вниз идут определённые ключи и через знак равенства им присваиваются значения. Логику импорта придумать не проблема. Вопрос в том, как её внедрить в стандартный режим? Что переопределять, расширять? Возможно ли это вообще?

 Эх. Есть тут пара клиентов, для которых нажать 3 кнопки и соотнести столбцы в .xls файле - непосильная задача. Пришлось делать импорт в 1 клик. В кратце по импорту абсолюно любого файла в систему:

1) делаем кнопку для вызова окошка выбора файла (подсмотреть можно в fileDetail)

2) Ломаем onFileUpload и upload методы, в upload указываем ссылку на собственный сервис.

3) Пилим C# сервис, куда приходит стрим с данными(они приходят в обёртке, там надо унаследовать интерфейс), из данных берём стрим с файлом.

4) Далее всё зависит от вашей фантазии. Парсите какие угодно файлы, каким угодно способом, используйте любые сторонние библиотеки, результат сохраняйте в бд через entity.

Кузнецов Сергей пишет:

как её внедрить в стандартный режим?

Это в ImportWizard? Ну... в теории можно разломать визард. Но тогда придётся один раз вычитывать файл(по какой-то определённой логике), брать колонки, присылать в js ответ с конфигом, генерить страницу с соответсятвием колонок и потом посылать вместе со стримом файла объект с мэппингом куда что вставлять. Опять же объект принять в своём сервисе и самому парсить... Так скажу: на импорт pdf я убил довольно много времени, лучше не надо эту гору кода трогать)

Показать все комментарии