Гость
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Заполнение файла txt из Excel с помощью VBA. / 9 сообщений из 9, страница 1 из 1
27.03.2020, 13:56
    #39941655
NatM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Заполнение файла txt из Excel с помощью VBA.
В файле Книга2.xlsm есть данные. Необходимо на их основе заполнить изначально пустой файл Пример.txt (либо создать новый txt и его заполнить) по правилам, описанным в файле "Описание заполнения файла Пример.docx".
Приложены файлы Книга2.xlsm, "Описание заполнения файла Пример.docx", "Пример.txt".
...
Рейтинг: 0 / 0
27.03.2020, 13:58
    #39941657
NatM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Заполнение файла txt из Excel с помощью VBA.
Не понятно, как прикреплять сразу 3 файла к сообщению, поэтому файл с описанием порядка заполнения приложен здесь.
Также приложен файл "Пример.txt" - это целевой результат, то что должно получиться в результате запуска макроса.

В файле "Книга 2.xlsx" сделана небольшая попытка.
...
Рейтинг: 0 / 0
27.03.2020, 13:59
    #39941658
NatM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Заполнение файла txt из Excel с помощью VBA.
NatM,
...
Рейтинг: 0 / 0
29.03.2020, 21:24
    #39942090
big-duke
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Заполнение файла txt из Excel с помощью VBA.
NatM,

Какой именно пункт инструкции вызвал затруднения ?
...
Рейтинг: 0 / 0
30.03.2020, 08:11
    #39942134
NatM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Заполнение файла txt из Excel с помощью VBA.
big-duke,

Не получается вывести макросом такое большое количество кавычек, двоеточий, слэшей и т.п., чтобы это все было сцеплено с данными в ячейках Книги2.xlsm.
Попытка написать макрос для вывода в txt предпринята в файле Книга2.xlsm. Возможно, есть какой-то макрос - аналог функции СЦЕПИТЬ, который будет работать корректно в цикле.


"types": [ // Типы данных для связи по id
{
"name": "client_relation", //Тип поля, по которому будет зависимость


И не получается сделать цикл (пробегаем столбец G и выводим блоки с описанием типов данных _relation только если в столбце G стоит непустое значение).

Нашла небольшую ошибку в файле Пример (запятая). Прилагаю замену.
...
Рейтинг: 0 / 0
30.03.2020, 09:54
    #39942149
big-duke
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Заполнение файла txt из Excel с помощью VBA.
NatM,

Кавычки можно получить через CHR(34).
Концептуально посмотрите решение через словарь и коллекции.
https://stackoverflow.com/questions/49032724/vba-json-create-nested-objects
...
Рейтинг: 0 / 0
30.03.2020, 20:32
    #39942349
NatM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Заполнение файла txt из Excel с помощью VBA.
big-duke,

вроде бы это то, что нужно, спасибо!

Только не совсем понятно, как сразу 4 свойства добавить в одних и тех же скобках {}, да еще и у "relation" свои 2 свойства в {}. И как добавить комментарии.

В концептуальном решении output = {"new_key":[{"value":1},{"foo":"bar"}]}. И как я поняла, в dictionary добавление производится парами, например: e.Add "foo", "bar".


Пример фрагмента из приложенного txt:

{
"name": "document_attach_relation", //Тип поля, по которому будет зависимость
"type": "SysRelation", //Тип для указания на зависимое поле
"displayName": "Документ вложения", //Отображаемое наименование
"relation": {
"table": "document_attach", //Наименование таблицы, в которой содержится поле, по которому идет связь
"displayField": "id" //Связь по id
}
},
...
Рейтинг: 0 / 0
30.03.2020, 20:49
    #39942351
NatM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Заполнение файла txt из Excel с помощью VBA.
Не успела изменить сообщение..

Нашла еще что-то подобное:

https://stackoverflow.com/questions/51306698/vba-json-converter-not-converting-more-than-15-digits
...
Рейтинг: 0 / 0
30.03.2020, 21:07
    #39942357
NatM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Заполнение файла txt из Excel с помощью VBA.
Вроде бы здесь похожа структура json здесь:

https://stackoverflow.com/questions/51306698/vba-json-converter-not-converting-more-than-15-digits



Но не совсем понятно как это сделать в 2 циклах и как добавить комментарии.

1. Программа пробегает по столбцу G (начиная со второй строки) и если в нем значение не пустое, формирует блок json с описанием типа данных "relation", используя для этого данные из текущей строки. Когда заканчиваются непустые значения в столбце G, ставится завершающая кавычка.
2. Программа пробегает далее по столбцу A (начиная со второй строки) и формирует блоки json с описанием таблиц и их полей, используя данные из текущей строки. Столбец A отсортирован по возрастанию. Пока наименования таблиц в нем совпадают, считается, что речь идет об одной и той же таблице. Каждая строка описывает одно новое поле таблицы. Когда в столбце A обнаруживается новое значение, считается, что началось описание следующей таблицы и ее полей. Формируется блок json с описанием следующей таблицы и ее полей. И так далее, пока в столбце A не будут исчерпаны все непустые значения.


Более подробно описано в файле "Описание заполн файла.docx".
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Заполнение файла txt из Excel с помощью VBA. / 9 сообщений из 9, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]