Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft Access Новый топик    Ответить
 Интересный файл CSV. Как обработать и импортировать?  [new]
Архимедофф
Member

Откуда:
Сообщений: 396
Всем привет. В аттаче CSV файл с двумя первыми строчками заголовков. Первая строка, что-то типа имени таблицы, вторая - имена полей. Данные нужно импортировать в таблицы. В приаттаченном варианте первая и третья таблицы не пустые.
Пока из идей - это разбивка такого файла на несколько. В данном случае на три. Имена файлам присвоить из первой строки, удалив её в итоговых файлах. Сделать спецификации и импортировать на основе них, т.к. это будет быстро. В таком файле может быть более 200 тыс. строк. Правда не знаю сколько времени будет уходить на разбивку файла на несколько.
Может есть другие мысли по обработке такого файла?

Файл откройте в текстовом редакторе, а потом экселем с разделителями - запятая. Тогда станет более понятно. Таблиц в таком файле может быть 10-15 и более.

К сообщению приложен файл (1.csv - 8Kb) cкачать
20 апр 19, 22:05    [21867936]     Ответить | Цитировать Сообщить модератору
 Re: Интересный файл CSV. Как обработать и импортировать?  [new]
Кривцов Анатолий
Member

Откуда:
Сообщений: 237
Архимедофф, можно, но сначала вопросы:
Столбец "$operation" в вашем примере во всех трех таблицах пустой - так всегда?
Или в столбце "$dn" все значения начинаются с "PLMN" - так всегда?
Все данные вы пишете в одну таблицу (тогда как отличаете, из какой секции взяты) или в разные (тогда как узнаете, в какую таблицу писать)?
Файл всегда имеет одно имя и лежит в конкретной папке?
22 апр 19, 12:02    [21868714]     Ответить | Цитировать Сообщить модератору
 Re: Интересный файл CSV. Как обработать и импортировать?  [new]
Akina
Member

Откуда: Зеленоград, Москва, Россия
Сообщений: 18835
Архимедофф
Пока из идей - это разбивка такого файла на несколько.

Неразумно. Уж больно разбиение будет геморройным.
Я бы рекомендовал программный импорт. Тупо открытие for input, считывание построчно, split, раскидка по массивам, обратный join и загрузка в таблицы.
22 апр 19, 13:27    [21868836]     Ответить | Цитировать Сообщить модератору
 Re: Интересный файл CSV. Как обработать и импортировать?  [new]
Кривцов Анатолий
Member

Откуда:
Сообщений: 237
Архимедофф, еще вопрос - в вашем файле 2-я и 3-я таблицы имеют одинаковую структуру, а 1-я на 2 столбца больше и другие имена. В реальном файле какая структура этих 10-15 таблиц?
22 апр 19, 14:51    [21868900]     Ответить | Цитировать Сообщить модератору
 Re: Интересный файл CSV. Как обработать и импортировать?  [new]
Архимедофф
Member

Откуда:
Сообщений: 396
Кривцов Анатолий,
Все данные вы пишете в одну таблицу (тогда как отличаете, из какой секции взяты) или в разные? - В РАЗНЫЕ
еще вопрос - в вашем файле 2-я и 3-я таблицы имеют одинаковую структуру, а 1-я на 2 столбца больше и другие имена. В реальном файле какая структура этих 10-15 таблиц? - Да, она именно такая разная
Выгрузка определяется такими профайлами(см. аттач). Этот профайл нужен, чтобы не выгружать класс со всеми его полями. В некоторых классах этих полей сотни три точно. Выгрузка занимает длительное время + ненужная для работы информация + большой объем файла. Профайл позволяет экономить время выгрузки и обработки итогового csv-файла. По крайней мере, если такой профайл использовать для одного класса (таблицы). К сожалению, софт производителя не позволяет выгрузить по отдельности каждый класс в одно действие. Т.е. или делать в один файл(за который я тему и поднял), либо ручками по отдельности - что долго :(

К сообщению приложен файл (Profile_test.xml - 1Kb) cкачать
22 апр 19, 15:33    [21868955]     Ответить | Цитировать Сообщить модератору
 Re: Интересный файл CSV. Как обработать и импортировать?  [new]
Кривцов Анатолий
Member

Откуда:
Сообщений: 237
Архимедофф, еще вопрос - данные пишутся в существующие таблицы, или создаются новые, или то и то?
22 апр 19, 16:50    [21869059]     Ответить | Цитировать Сообщить модератору
 Re: Интересный файл CSV. Как обработать и импортировать?  [new]
Архимедофф
Member

Откуда:
Сообщений: 396
Кривцов Анатолий,

Перед импортом, существующие таблицы будут очищаться.
22 апр 19, 20:08    [21869250]     Ответить | Цитировать Сообщить модератору
 Re: Интересный файл CSV. Как обработать и импортировать?  [new]
Кривцов Анатолий
Member

Откуда:
Сообщений: 237
Архимедофф, предлагаю такую стратегию:
1. Открываете текстовый файл в Excel-е;
2. Каджому диапазону, представляющему данные таблицы присваиваете имя из 1-й строки, но ":" надо заменить на другой символ (например, диапазону A2:S42 в вашем примере присваиваете имя "NOKBSC_BTS");
3. Сохраняете файл в формате XLSX в конкретной папке с конкретным именем.
Этот процесс можно автоматизировать.
Так вы получите до 15 таблиц с заголовками полей, доступными из Акса.

Например для диапазона с именем "NOKBSC_BTS" в файле C:\Import.xlsx:
SELECT T.* FROM [NOKBSC_BTS] As T In 'C:\Import.xlsx' [Excel 12.0 Xml;]
Этот запрос на выборку вернет данные со всеми полями, но можете указать только требуемые, а затем переделать его в запрос на добавление. Запрос можно сохранить и запускать по необходимости (и таких запросов - для каждого варианта).
Можно не сохранять, а формировать и выполнять SQL в процедуре, но тогда надо где-то брать список полей (например из спецтаблицы).
23 апр 19, 10:18    [21869539]     Ответить | Цитировать Сообщить модератору
 Re: Интересный файл CSV. Как обработать и импортировать?  [new]
Архимедофф
Member

Откуда:
Сообщений: 396
Кривцов Анатолий,
Спасибо, подумаю конечно над вашим предложением. Может еще кто-нибудь что-то предложит?
29 апр 19, 21:34    [21874935]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft Access Ответить