Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Программирование, связанное с MS Office > [Перенесено из VB6/MS Access]загрузить текстовый файл в excel |
Автор: cASSAndra 19.9.2008, 14:40 |
добрый день, у меня такая вот ситуация. есть n-ное количество текстовых файлов, данные в которых разделены символами табуляции и новой строки. мне надо все эти n файлов засунуть в один документ Excel на разные листы. как этот файл засовывать в excel построчно я нашла, но так слишком долго будет. не существует ли какой-то команды типа loadfile, чтобы не по ячейкам все копировать, а сразу весь документ добавлять? как с cтравливанием xml и xslt?![]() |
Автор: kapbepucm 19.9.2008, 15:53 |
Workbooks.OpenText? |
Автор: cASSAndra 19.9.2008, 17:11 |
может быть и так. а с его помощью можно выводить несколько файлов на несколько листов в одну и ту же книгу? |
Автор: Akina 19.9.2008, 17:42 |
По одному. Вручную. Или написАть макросик, который сделает это программно. Но тебе быстрее вручную. |
Автор: cASSAndra 19.9.2008, 19:12 | ||
![]() ситуация такая. пишу отчеты в крупной банковской системе, которая у нас почти не используется. хитрыми манипуляциями получаю список проводок за день/месяц/квартал в разрезе по всем отделениям банка (неограниченное число). сколько отделений, столько текстовых файлов получается. текстовый формат - дурацкое требование банка. иначе вывела бы все данные в xml файлы, создала xslt шаблон и просто потом стравила бы их, получив документ Excel за 2 секунды. вся фишка в том, что в системе это пишется в vb скриптах и б'ольшая часть того что можно найти по .NET естественно не катит. нашла пример с OpenText http://www.codeguru.com/forum/showthread.php?threadid=398782 помоему таким же макаром можно и через просто Оpen открыть - все нормально выводится. но мне надо несколько документов загнать в одну книгу и на разные листы (для каждого отделения - свой текстовый файл и свой лист в Excel соответственно). - это чтобы пользователю нагляднее смотреть было, если отчет вручную запустят, а не в процедурах закрытия дня. при запуске в закрытии дня этот Excel никому нафиг не нужен ![]() может есть что-то типа Excel.Workbooks(1).Worksheets(i).Open(Path(i))? если построчно писать - отчет систему повесить может часа на 2 думаю - надо же по всем отделениям за квартал проводки выводить - ато и за год, если кому приспичит ![]() |
Автор: Akina 19.9.2008, 21:17 |
Ну собсно делаем макросик... Список файлов по шаблону в каталоге получить (думаю, свалить их в один каталог тебе несложно) - дело плёвое. Dir(). А еще лучше - подергать за FSO.Files. А далее собсно обертываем это дело в цикл. Получили очередное имя файла. Отрезаем расширение. Создаем НОВЫЙ (!!!) лист с таким именем. Делаем его активным. Делаем на него импорт текстового файла... Полученный макрос запихиваем в девственно-чистую книгу с одним листиком и стартуем - по окончании его работы книга набита листами с данными. |
Автор: cASSAndra 20.9.2008, 14:25 |
так... из всего вышесказанного, мне надо всего-то сначала активировать нужный лист... Excel.WorkBook(1).WorkSheet(i).Active Excel.WorkBook(1).Open(Path(i)) спасибо, попробую. я про активацию не знала, так как вообще с Excel раньше не работала. список файлов получать не надо - он в массиве лежит ![]() ЗЫ пишется это все не в макросах Excel, а в хитрой системе по имени Temenos T24 ![]() |
Автор: Akina 20.9.2008, 20:51 | ||
Достаточно
|
Автор: cASSAndra 22.9.2008, 09:28 | ||
ну вот после этого видимо надо написать
он создал книгу с кучей страниц с нужными именами, а все файлы открыл в отдельных документах ![]() |
Автор: Akina 22.9.2008, 10:06 | ||
Конечно нет. Open - это открыть в новом документе. Что просишь - то и получаешь. Надо
Ну в принципе можно натолкать еще груду необходимого кода - специфицирующего, форматирующего и пр. |
Автор: cASSAndra 22.9.2008, 11:12 | ||
а эту QueryTables объявлять как-то надо? пишет ошибка в скрипте... может как-то листы копировать можно из одной книги в другую? написала
тоже ошибка в скрипте ![]() |
Автор: Akina 22.9.2008, 11:42 |
О мамма миа!!! Сервис - макрос - начать запись Данные - импорт внешних данных - импортировать данные Выполните импорт файла на текущий лист Сервис - макрос - остановить запись Сервис - макрос - макросы Выбрать свежезаписанный макрос Изменить. И изучайте... |
Автор: cASSAndra 22.9.2008, 13:53 |
написала я по образцу макроса - ошибок не выводит, но и ничерта ничего не добавляет в документ. тут не полноценный VB, а какойто его обрубок. б'ольшая половина стандартных команд просто игнорируется... |
Автор: cASSAndra 22.9.2008, 14:13 | ||
да я и впеременной передать пробовала и так забить... вот получилось скопировать лист из одной книги в другую таким способом
пожалуй так и сделаю. в любом случае - спасибо за помощь. вот про запись макросов - ценная информация. я про это раньше и не слышала ![]() |