|
0 / 0 / 0
Регистрация: 23.10.2017
Сообщений: 6
|
|
Перенос данных из текстовых файлов в excel24.10.2017, 00:13. Показов 17821. Ответов 40
Метки нет (Все метки)
Доброго всем дня!
Помогите, пожалуйста с решением проблемы! Есть множество txt файлов, нужно при помощи макроса перенести данные из этих файлов в Ексель с разбивкой по столбцам. Если подробней, то текстовый файл содержит порядка 15 строк, нужно эти строки перенести в отдельные столбцы ексель, далее взять следующий текстовый файл и также, только с новой строки, разбить его на столбцы в этот же ексель под данными предыдущего текстового файла и так далее. Формат текстового файла приблизительно такой: текст1: значение1 Текст2: значение2 и т.д. В идеале конечно же было копировать значения только после ":пробел", но хотя бы всю строку. Моих познаний хватило только на макрос с разбивкой одного файла на столбцы и то подсмотрел на форуме. В макросах совсем не силен.
0
|
|
| 24.10.2017, 00:13 | |
|
Ответы с готовыми решениями:
40
Перенос данных из файлов Word в Excel Перенос данных из нескольких файлов excel в один Перенос однотипных данных из 20 файлов более 15млн строк Excel в Access |
|
4089 / 1469 / 401
Регистрация: 07.08.2013
Сообщений: 3,670
|
|
| 24.10.2017, 08:13 | |
|
SaylerZ,
выложите файл TXT а перед выкладыванием замените в нем данные на "левые" и желательно файл excel c данными какими они должны получиться
0
|
|
|
0 / 0 / 0
Регистрация: 23.10.2017
Сообщений: 6
|
|
| 24.10.2017, 22:33 [ТС] | |
|
Во вложении пример. Грубо говоря, все строки из первого txt нужно перенести в столбцы в ексель. Далее из второго txt в этот же ексель все строки в столбцы, но уже с новой строки и так далее. Желательно конечно, чтобы данные брались после ":пробел".
0
|
|
|
6997 / 2895 / 555
Регистрация: 19.10.2012
Сообщений: 8,803
|
|
| 25.10.2017, 13:31 | |
|
И что, во всех файлах именно в таком порядке есть все позиции? И ничего более? Из практики такого не бывает
![]() Я делал так - сперва в словаре собирал коллекции или кажется другие словари данных из всех текстовых файлов, и уже затем раскладывал всё на лист. Добавлено через 13 часов 37 минут Да, и если нужен именно перенос - после удачно выполненного копирования все текстовые файлы убить!
0
|
|
|
0 / 0 / 0
Регистрация: 23.10.2017
Сообщений: 6
|
|
| 26.10.2017, 22:47 [ТС] | |
|
Да, во всех файлах одинаковые позиции. Все файлы однотипные, там позиций 20. Всё что до ":" не меняется, меняются только значения после ":".
Добавлено через 26 секунд Да, во всех файлах одинаковые позиции. Все файлы однотипные, там позиций 20. Всё что до ":" не меняется, меняются только значения после ":".
0
|
|
|
6997 / 2895 / 555
Регистрация: 19.10.2012
Сообщений: 8,803
|
||||||
| 26.10.2017, 23:07 | ||||||
|
Тогда проще, тогда можно без словаря - открыли в цикле по одному все тексты, скопировали данные в очередную строку.
Добавлено через 18 минут Вот например, переделал что первое попалось:
0
|
||||||
|
0 / 0 / 0
Регистрация: 23.10.2017
Сообщений: 6
|
|
| 26.10.2017, 23:34 [ТС] | |
|
Протестил, вроде всё огонь. Спасибо большое!
Единственное пару моментов уточнить хотелось бы) Если допустим будет в txt через одну строчку запись, типа: Имя: Иван Фамилия: Иванов то уже не попрет макрос я так понимаю. Или же в строчки не будет ":", тоже будет ошибка. А есть возможность предусмотреть эти 2 условия. Или как вариант прописать выполнять эти действия до определенной строчки в txt файле. Добавлено через 2 минуты Уточню, там где нет ":" сточка вообще не нужна, или же если будет пропуск между строчками, то приступать сразу к следующему txt файлу. Вполне достаточно второго условия.
0
|
|
|
6997 / 2895 / 555
Регистрация: 19.10.2012
Сообщений: 8,803
|
|
| 26.10.2017, 23:36 | |
|
Так Вы ведь уверяли что там всё чётко... Так что теперь уж извините, переделывать не буду
![]() Ну выкинуть пустую строку легко - просто после 14-й строки проверяем что в el есть значение, если есть, то увеличиваем переменную и пишем на лист. Но уверен что не всё так просто... но об этом я уже говорил.
0
|
|
|
0 / 0 / 0
Регистрация: 23.10.2017
Сообщений: 6
|
|
| 26.10.2017, 23:39 [ТС] | |
А на сколько трудоемко написать условие: "если будет пропуск между строчками, то приступать сразу к следующему txt файлу."
0
|
|
|
6997 / 2895 / 555
Регистрация: 19.10.2012
Сообщений: 8,803
|
||||||
| 26.10.2017, 23:44 | ||||||
|
Да не особо сложно...
0
|
||||||
|
0 / 0 / 0
Регистрация: 23.10.2017
Сообщений: 6
|
|
| 26.10.2017, 23:52 [ТС] | |
|
Ну всё очень круто
Спасибо огромное, завтра протестирую в боевых условиях.
0
|
|
|
Нет, ну ты видел?!
8 / 8 / 0
Регистрация: 21.05.2020
Сообщений: 146
|
|||||||
| 26.02.2021, 13:30 | |||||||
|
Hugo121,
Пытаюсь под свои реали перебрать это
Что я понял, Для каждого файла с маской *TXT* применить следующие: Файл начинает читаться VBA ... а дальше магия какая то происходит, написанная на эльфийском
0
|
|||||||
|
малоболт
1328 / 510 / 213
Регистрация: 30.01.2020
Сообщений: 1,244
|
|||||||
| 26.02.2021, 19:17 | |||||||
|
то есть эта строка аналогична
1
|
|||||||
|
6997 / 2895 / 555
Регистрация: 19.10.2012
Сообщений: 8,803
|
||||||
| 26.02.2021, 22:11 | ||||||
для каждого элемента массива, который получен разбитием прочитанного файла в массив по "символу" новой строки (тут кстати могут быть варианты!) т.е. перебираем этот массив строк и что-то далее делаем, в данном случае увеличиваем номер строки, куда выводим уже элемент массива, который получаем из этого элемента, разбив его в массив по двоеточию. Второй элемент, первый будет Split(el, ":")(0) Посмотреть что где в какой переменной можно в окне Locals, прогоняя код пошагово, или на паузе кода.
1
|
||||||
|
Нет, ну ты видел?!
8 / 8 / 0
Регистрация: 21.05.2020
Сообщений: 146
|
||||||
| 01.03.2021, 13:05 | ||||||
|
Hugo121,
у меня пока выходит вытащить только число из второго столбика, т.к. оно подходит по маске, а надо из третьего И я чувствую, что ответ де то рядом, но никак не могу понять, чего не хватает Я по вашей схеме разбиваю txt на строки, далее ищу номер символа, который совпадает с нужной строкой Открываю перебор и поиск символов по маске #.##, ну и забираю нужное Но что то идет не так Можно ли как то ориентировать код по словам? числам? мол забери третье "слово" с начала Типа Mid(test, первый_символ_слова, последний_символ_слова) Вот только как эти символы найти?
0
|
||||||
|
859 / 509 / 187
Регистрация: 09.03.2009
Сообщений: 1,721
|
||||||
| 01.03.2021, 13:29 | ||||||
|
blackfisk, я бы так сделал:
- читаю строки файла, пока не найду "№" - это пропуск заголовков - для строк ниже до конца файла (While Not EOF(номер_файла)) выполняю: - заменить " " (2 пробела) на "|" - заменить "||" на "|", пока в строке есть "||" - теперь данные отделены одним разделителем "|" - делаем Split(строка, "|") - вуаля - поделили на элементы Вид после замен будет примерно такой:
Добавлено через 1 минуту Почему делаю замены, а не, к примеру, "текст по столбцам" - у вас в 1-3 и 5-6 строках наименование включает пробел (1 фаза_Jen) и тогда оно бы тоже поделилось.
1
|
||||||
|
Нет, ну ты видел?!
8 / 8 / 0
Регистрация: 21.05.2020
Сообщений: 146
|
||||||
| 01.03.2021, 13:43 | ||||||
|
Zeag,
добавить это?
0
|
||||||
|
859 / 509 / 187
Регистрация: 09.03.2009
Сообщений: 1,721
|
|
| 01.03.2021, 13:49 | |
|
Минут 10-15 подождите, я сделаю, посмотрите. Добраться по индексу.
0
|
|
|
Нет, ну ты видел?!
8 / 8 / 0
Регистрация: 21.05.2020
Сообщений: 146
|
||||||
| 01.03.2021, 13:56 | ||||||
Добавлено через 3 минуты У меня Trim() даже не убирает пробелы в строке :/
0
|
||||||
|
859 / 509 / 187
Регистрация: 09.03.2009
Сообщений: 1,721
|
|
| 01.03.2021, 13:57 | |
|
Немного ошибся, у вас там табуляторы разделители, а не пробелы, но и так можно.
0
|
|
| 01.03.2021, 13:57 | |
|
Помогаю со студенческими работами здесь
20
Обработка текстовых файлов в Excel Перенос текстовых данных в DataGridView Экспорт массива текстовых файлов в лист excel Импорт многомиллионных текстовых файлов в MS Excel средствами мастера импорта Импорт нескольких текстовых файлов на один лист в Excel с возможностью задания маски Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
|
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11
— это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
|
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11
Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
|
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
|
|
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/
O1rJuneU_ls
https:/ / vkvideo. ru/ video-115721503_456239114
|
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ВВЕДЕНИЕ
Введу сокращения:
аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
|
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi
ветка по-частям.
коммит Create переделка под биомассу. txt
вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
|
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ *
Дана цепь постоянного тока с сопротивлениями и источниками (напряжения, ЭДС и тока). Найти токи и напряжения во
всех элементах. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и. . .
|