<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; VBScript: Как преобразовать текстовый файл в файл xls]]></title>
		<link>https://forum.script-coding.com/viewtopic.php?id=5758</link>
		<atom:link href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=5758&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «VBScript: Как преобразовать текстовый файл в файл xls».]]></description>
		<lastBuildDate>Fri, 29 Apr 2011 10:01:06 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: VBScript: Как преобразовать текстовый файл в файл xls]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=47935#p47935</link>
			<description><![CDATA[<div class="quotebox"><cite>Slav пишет:</cite><blockquote><p>предлагаю еще раз внимательно посмотреть на постановку задачи.<br />В ней прямо сказано - каждое значение находится в одной строке.</p></blockquote></div><p>Прочитал.&nbsp; <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /><br /></p><div class="quotebox"><cite>Pitkin пишет:</cite><blockquote><p>Необходимо преобразовать его в формат xls.<br />&lt;...&gt;<br />Причем необходимо, сделать так, чтобы строки в каждом блоке стали столбцами, возможно ли такое?</p></blockquote></div><p>Так что данные нужно всё-таки транспонировать, причём разделителем результирующих строк служит пустая строка. И &quot;заказанный&quot; формат - XLS, а не текстовый с разделителем <img src="//forum.script-coding.com/img/smilies/wink.png" width="15" height="15" /></p><p>Сформировать CSV предложил <strong>Dmitrii</strong>, я лишь предложил реализацию(благо код там копеешный, а у меня было свободное время). Потом, поняв уровень спрашивающего уже доделал вариант с экселем(Тут конечно код не идиален, делался полунаучным методом. Но ведь выполняет поставленную задачу <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" />)</p><div class="quotebox"><cite>Slav пишет:</cite><blockquote><p>Но давайте оценим разные решения с точки зрения лаконичности - ведь все гениальное просто.</p></blockquote></div><p>Лаконичнее и правильнее было бы обойтись без промежуточных файлов, а формировать отчёт сразу. Если очёты требуется дополнять(возникло такое подозрение по высказываниям Pitkin-а), то я бы всё-таки перешел к хранению в БД. Там гораздо проще манипулировать данными, да и встроенные механизмы получения отчётов в разных форматах тоже присутствуют(про экспресс не уверен, но в MSDE - 100%).</p><div class="quotebox"><cite>Slav пишет:</cite><blockquote><p>Полюбому - лучше всегда знать как можно больше вариантов, в том числе и &quot;трюковых&quot;.<br />Как Вы считаете?</p></blockquote></div><p>В целом согласен(про пользу разнообразных решений). Что касается &quot;трюков&quot;, то тут я своё отношение написал. Их полезно знать, их иногда можно использовать. Но нужно также знать из-за чего эти трюки работают - чтобы понять почему вдруг трюк перестал работать на другом компьютере <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /> Думаю что многие тут, на форуме, представляют уровень типового пользователя. Так что чем меньше будет в конечном результате зависеть от опыта работы &quot;оператора&quot;(того к кому попадёт трюковый отчёт), тем надёжнее решение.</p>]]></description>
			<author><![CDATA[null@example.com (BeS Yara)]]></author>
			<pubDate>Fri, 29 Apr 2011 10:01:06 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=47935#p47935</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBScript: Как преобразовать текстовый файл в файл xls]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=47931#p47931</link>
			<description><![CDATA[<div class="quotebox"><cite>BeS Yara пишет:</cite><blockquote><p>...<br /><strong>Slav</strong>, если в первом моём примере скрипта(где вывод идёт в текстовый файл) поменять расширение на xls, то на выходе будет <strong>текстовый</strong> файл(&quot;<span class="bbu">файл1</span>&quot;):<br /></p><div class="quotebox"><blockquote><p>142459875;1635;180;20110426<br />142460066;387;180;20110426<br />142460100;395;207;20110426<br />142459875;1635;180;20110426<br />142460066;387;180;20110426<br />142460100;395;207;20110426</p></blockquote></div><p>...<br />Если открыть экселем <strong>текстовый</strong> файл &quot;<span class="bbu">файл1</span>&quot;, то результат будет отнюдь не тот что ожидался - с данными будет только первая колонка, в каждой ячейки которой помещена строка. Мне кажется или это далеко от задачи описанной в первом посте?<br />...</p></blockquote></div><p>BeS Yara,</p><p>предлагаю еще раз внимательно посмотреть на постановку задачи.<br />В ней прямо сказано - каждое значение находится в одной строке.</p><p>Это Вы предлагаете преобразовать входные данные в формат <em>csv</em> - как раз для решения проблемы &quot;одной строки&quot;.<br />А затем применить трюк с заменой на расширение <em>xls</em>.<br />Не нужно этого делать - так и читайте с расширением <em>csv</em>.</p><p>Я не имею ничего против Excell.Application.<br />Но давайте оценим разные решения с точки зрения лаконичности - ведь все гениальное просто.</p><p>Имея txt-файл с конкретной структурой с одной стороны предлагается сделать еще как минимум 2 файла: скрипт преобразования в csv и на выходе сам csv.<br />Второе решение - скрипт с Excell.Application, который читает данные - пишет в xls-формате.</p><p>А третье решение - назовем его &quot;трюковое&quot; - требует всего-то сменить расширение на xls.<br />И еще - давайте уж рассмотрим его до конца - небольшую макру <em>Auto_Open </em>в самом Excel, которая переставит значения из исходного формата в строку при открытии файла.<br />И которая может быть создана пользователем начального уровня в самом Excel путем &quot;записать макро&quot;.</p><p>Я не хочу давать оценку - какое решение лучше.<br />Пусть каждый выберет то, которое лично ему больше нравится.<br />Или больше подходит в данной конкретной ситуации.</p><p>Полюбому - лучше всегда знать как можно больше вариантов, в том числе и &quot;трюковых&quot;.<br />Как Вы считаете?</p><p>Удачи! <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /></p>]]></description>
			<author><![CDATA[null@example.com (Slav)]]></author>
			<pubDate>Fri, 29 Apr 2011 09:34:44 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=47931#p47931</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBScript: Как преобразовать текстовый файл в файл xls]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=47926#p47926</link>
			<description><![CDATA[<p><strong>Pitkin</strong>, есть файл Книга1.xls - он будет перезаписан, Нет файла Книга1.xls - он будет создан. Можете пояснить что значит &quot;Все равно наличие файла Книга1.xls требует&quot; - в чём это проявляется?</p><p><strong>Slav</strong>, если в первом моём примере скрипта(где вывод идёт в текстовый файл) поменять расширение на xls, то на выходе будет <strong>текстовый</strong> файл(&quot;<span class="bbu">файл1</span>&quot;):<br /></p><div class="quotebox"><blockquote><p>142459875;1635;180;20110426<br />142460066;387;180;20110426<br />142460100;395;207;20110426<br />142459875;1635;180;20110426<br />142460066;387;180;20110426<br />142460100;395;207;20110426</p></blockquote></div><p>Экселевский файл с этими-же данными будет выглядеть примерно так(кусок, все 5к приводить не буду):<br /></p><div class="quotebox"><blockquote><p>РПаЎ±б&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &gt;  юя	 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp;юяяя&nbsp; &nbsp; &nbsp; &nbsp; яяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяя&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;	&nbsp; &nbsp;юяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяR o o t&nbsp; &nbsp;E n t r y&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;  яяяяяяяя&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;А&nbsp; &nbsp; &nbsp; F&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; а<br />ECМ&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; W o r k b o o k&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;  яяяяяяяяяяяя</p></blockquote></div><p>Если открыть экселем <strong>текстовый</strong> файл &quot;<span class="bbu">файл1</span>&quot;, то результат будет отнюдь не тот что ожидался - с данными будет только первая колонка, в каждой ячейки которой помещена строка. Мне кажется или это далеко от задачи описанной в первом посте?</p><p>Не говоря уже о том что всё зависит от работы(и, кстати, наличия) конвертера текстовых файлов в конкретной версии офиса. Не говоря уже о том, что ОпенОфис при открытии такого &quot;экселевского&quot; файла честно откроет окно импорта из текстового файла(впрочем разделители он распознал вполне корректно).</p><p>Я считаю что подобный подход в корне не верен - расширение файла должно соответствовать внутреннему формату. Одну из причин я уже писал. Предположим Ваша организация передавала смежникам экселевские отчёты, которые они обрабатывали автоматически. Теперь Вы решили процесс автоматизировать и скриптом генерируете &quot;экселевские&quot;(а на самом деле текстовые) отчёты. Так вот, скрипт ориентированный на работу с настоящим форматом XLS псевдо экселевские файлы не поймёт(я с этим уже сталкивался). Для начала, пройдёт некоторое время прежде чем обнаружится что данные не получаются. Потом одной из сторон прийдётся переписывать свои скрипты. Кто станет крайнем в потере оперативности из-за смены формата данных?</p><p>Если уж нет желания использовать Excell.Application(или его нет - например на сервере не установлен офис), то можно установить MSDE, и все данные сливать туда. А уже с MSDE получить экселевские отчёты элементарно - DTS Вам в помощь <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /></p>]]></description>
			<author><![CDATA[null@example.com (BeS Yara)]]></author>
			<pubDate>Fri, 29 Apr 2011 08:31:19 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=47926#p47926</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBScript: Как преобразовать текстовый файл в файл xls]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=47922#p47922</link>
			<description><![CDATA[<div class="quotebox"><cite>Pitkin пишет:</cite><blockquote><p>...<br />Просто поменял расширение, txt на xls и о чудо, формирует xls файл.<br />...</p></blockquote></div><p>Еще раз убедился - темы &quot;новичков&quot; таят много интересного.<br />Мне бы сделать такое даже в голову не пришло - но ведь это работает!</p><p>Может пригодиться - спасибо, <strong>Pitkin</strong>.</p>]]></description>
			<author><![CDATA[null@example.com (Slav)]]></author>
			<pubDate>Fri, 29 Apr 2011 05:34:09 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=47922#p47922</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBScript: Как преобразовать текстовый файл в файл xls]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=47918#p47918</link>
			<description><![CDATA[<p>Всем огромное спасибо, за помощь и за ссылки выложенные здесь. Правда всё еще не осилил <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /> Но как говорится, учение - свет, неучение - тень. Теперь буду пытаться полностью автоматизировать процесс, чтобы данные не перезаписывались, а пополнялись сами, ну чтобы на работу ходить только в день зарплаты <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /></p><p>P.S.&nbsp; BeS Yara Все равно наличие файла Книга1.xls требует, не могу понять почему, но буду разбираться, все впереди...</p><p>Еще раз всем спасибо, УДАЧИ !!! <img src="//forum.script-coding.com/img/smilies/wink.png" width="15" height="15" /></p>]]></description>
			<author><![CDATA[null@example.com (Pitkin)]]></author>
			<pubDate>Thu, 28 Apr 2011 18:52:53 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=47918#p47918</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBScript: Как преобразовать текстовый файл в файл xls]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=47911#p47911</link>
			<description><![CDATA[<p>CreateTextFile создаёт текстовый файл. XLS - бинарный файл.<br />То что эксель правильно открыл переименованный текстовой файл не делает тот файл экселевским. Просто удачно сработал конвертер(excel умеет принимать текстовые форматы, хотя не всегда правильно). Переименованный csv(полученный из скрипта) открывается не совсем верно - по строке в ячейку.</p><p>Более того - если далее файл будет обрабатываться автоматически, возможны проблемы. Мне как-то подсунули таблицу сохранённую в html-виде, но с расширением XLS - я долго не мог понять почему эксель файл открывает, а скрипт нет. Пока по F3 его не посмотрел. Убил бы!</p><p>Далее:<br />1. наличие файла Книга1.xls не обязательно<br />2. он не дописывается, а перезаписывается</p><p>Скрипт открывает невидимое окно Excel, записывает туда данные, сохраняет в указанный в скрипте файл и закрывает окно Excel. Если нужно дописывать данные, то необходимо открывать этот файл, находить конец данных, и записывать дальше новые. Мой вариант этого не делает.</p>]]></description>
			<author><![CDATA[null@example.com (BeS Yara)]]></author>
			<pubDate>Thu, 28 Apr 2011 11:38:16 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=47911#p47911</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBScript: Как преобразовать текстовый файл в файл xls]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=47909#p47909</link>
			<description><![CDATA[<p>Со сменой расширения я тоже был крайне удивлен, но это действительно работает, можете опробовать <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /><br />Кажется я понял, как работает ваш код, только для того, чтобы он работал нужно, чтобы присутствовал пустой файл Книга1.xls<br />А если будут поступать новые данные, то они будут дополняться, а не затираться, это очень удобно, спасибо огромное <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /></p><br /><p>P.S. С меня 83103 литра пива</p>]]></description>
			<author><![CDATA[null@example.com (Pitkin)]]></author>
			<pubDate>Thu, 28 Apr 2011 11:12:38 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=47909#p47909</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBScript: Как преобразовать текстовый файл в файл xls]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=47906#p47906</link>
			<description><![CDATA[<div class="quotebox"><blockquote><p>Просто поменял расширение, txt на xls и о чудо, формирует xls файл.</p></blockquote></div><p>Это была шутка? <img src="//forum.script-coding.com/img/smilies/hmm.png" width="15" height="15" /><br />Если нет, то Вы ставите меня в тупик(состояние более известное как &quot;разрыв шаблона&quot;)...</p><p>По поводу второго куска кода, это была часть замены. Вот что подразумевалось(вчерне):<br /></p><div class="codebox"><pre><code>
option explicit
Const ForReading = 1 :  Const ForWriting = 2 :  Const ForAppending = 8
Const TristateUseDefault = -2 :  Const TristateTrue = -1 :  Const TristateFalse = 0

Dim fso, f, ts
Set fso = WScript.CreateObject(&quot;Scripting.FileSystemObject&quot;)
Set f = fso.GetFile(&quot;C:\aScripts\vbs\txt2xls\input.txt&quot;)
Set ts = f.OpenAsTextStream(ForReading, TristateUseDefault)

Dim Excel
Set Excel = WScript.CreateObject(&quot;Excel.Application&quot;)
Excel.Visible = False &#039; не показывать окно Excel
Excel.WorkBooks.Add
Dim data
data = ts.ReadAll
Dim Rows, Cells, i, j
Rows = Split(data, VbCrLf &amp; VbCrLf, -1, vbTextCompare)
For i = LBound(Rows) to UBound(Rows)
 Cells = Split(Rows(i), VbCrLf, -1, vbTextCompare)
 For j = LBound(Cells) to UBound(Cells)
  Excel.ActiveSheet.Cells(i+1, j+1).Value = Cells(j)
 Next
Next

Excel.ActiveWorkbook.SaveCopyAs &quot;C:\aScripts\vbs\txt2xls\Книга1.xls&quot;
Excel.DisplayAlerts = False &#039; не выводить запрос о сохранении
Excel.Quit
Set Excel = Nothing</code></pre></div><p><a href="http://forum.script-coding.com/viewtopic.php?id=5675">WSH: преобразуем макрос VBA в скрипт VBScrip</a>, а также поиск по форуму на тему &quot;Excel.Application&quot; даст достаточно много примеров работы с Excel.</p>]]></description>
			<author><![CDATA[null@example.com (BeS Yara)]]></author>
			<pubDate>Thu, 28 Apr 2011 10:53:17 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=47906#p47906</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBScript: Как преобразовать текстовый файл в файл xls]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=47905#p47905</link>
			<description><![CDATA[<p>Пока неспеша &quot;строчил&quot; ответ, уже написали рабочий пример скрипта. <strong>BeS Yara</strong>, спасибо, мне тоже пригодится.</p>]]></description>
			<author><![CDATA[null@example.com (tankist)]]></author>
			<pubDate>Thu, 28 Apr 2011 10:31:01 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=47905#p47905</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBScript: Как преобразовать текстовый файл в файл xls]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=47904#p47904</link>
			<description><![CDATA[<div class="quotebox"><cite>Pitkin пишет:</cite><blockquote><p>Просто задача состоит в том, что бы в определенное время суток автоматически выполнялся скрипт, который будет брать данные строки из текстового файла, затем переносить их в файл xls формата и выкладывать на сетевой ресурс. Все данные задачи уже решены, кроме преобразования текстового файла в файл Excel.</p></blockquote></div><p>Мне кажется, можно немного перефразировать задачу - создать excel файл c актуальными данными из текстового источника, требующий дополнительных операций преобразований. Есть два пути решения:<br />1. (Ваш) Создать скрипт, который будет выполняться по таймингу в определенное время и будет выполнять операции: (а) преобразовать данные; (б) создать xls файл; (в) выкладывать результат на определенный ресурс.<br />2. Создать файл c эксель импортом данных (теперь понятно, что без vba - никуда), который будет автоматически брать последние данные по запросу пользователя (например - &quot;при открытии&quot;).</p><p>Как по моему мнению - второй вариант и проще в реализации и актуальней с точки зрения обновления данных. Алгоритм действий vba макроса должен быть такой-же как и алгоритм скрипта по преобразованию текста в csv - значение следующей строки вставлять через разделитель в 1 строку, пока не следующая строка не будет пустой, тогда осуществлять &quot;набор&quot; с новой строки.<br />К сожалению я, так же слаб в быстром написании скриптов и без мануалов не обхожусь, по этому сейчас, в рабочее время могу поделиться только полезными ссылками:<br /><a href="http://www.rondebruin.nl/tips.htm">http://www.rondebruin.nl/tips.htm</a> - см. раздел &quot;Copy/Paste/Merge examples&quot;. Там много интересного...<br /><a href="http://www.exceltip.com/exceltips.php?view=category&amp;ID=214">http://www.exceltip.com/exceltips.php?v … amp;ID=214</a> - советую так же посмотреть остальные разделы<br /><a href="http://excelvba.ru/code/processing_files">http://excelvba.ru/code/processing_files</a> - русскоязычный ресурс с очень хорошими примерами (там три раздела касаются темы топика)<br /><a href="http://msoffice.nm.ru">http://msoffice.nm.ru</a> - то же на русском, правда в количестве примеров нужно долго копаться <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /></p>]]></description>
			<author><![CDATA[null@example.com (tankist)]]></author>
			<pubDate>Thu, 28 Apr 2011 10:26:27 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=47904#p47904</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBScript: Как преобразовать текстовый файл в файл xls]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=47903#p47903</link>
			<description><![CDATA[<p>Спасибо, огромное, я тут поколдовал немного, и решил этот вопрос проще, в строке с моим кодом где указывается результирующий файл</p><div class="quotebox"><blockquote><p>Set objFile = objFSO.CreateTextFile(strFolderPath &amp; &quot;\AllTextFiles.txt&quot;)</p></blockquote></div><p>Просто поменял расширение, txt на xls и о чудо, формирует xls файл.<br />Сейчас попробую поковырять ваш код <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /></p><p>Я так понял, что вторая часть кода, это как раз то, что нужно для преобразования строк в столбцы?<br />Не могли бы вы объяснить как это работает, а то не могу понять куда этот кусок вставлять в мой код</p>]]></description>
			<author><![CDATA[null@example.com (Pitkin)]]></author>
			<pubDate>Thu, 28 Apr 2011 10:24:19 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=47903#p47903</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBScript: Как преобразовать текстовый файл в файл xls]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=47902#p47902</link>
			<description><![CDATA[<p>Преобразовать в csv достаточно просто(при условии что формат файла именно такой как приведён в первом посте):<br /></p><div class="codebox"><pre><code>
option explicit
Const ForReading = 1 :  Const ForWriting = 2 :  Const ForAppending = 8
Const TristateUseDefault = -2 :  Const TristateTrue = -1 :  Const TristateFalse = 0

Dim fso, f, ts
Set fso = WScript.CreateObject(&quot;Scripting.FileSystemObject&quot;)
Set f = fso.GetFile(&quot;C:\aScripts\vbs\txt2xls\input.txt&quot;)
Set ts = f.OpenAsTextStream(ForReading, TristateUseDefault)

Dim data
data = ts.ReadAll
ts.Close
Set f = fso.GetFile(&quot;C:\aScripts\vbs\txt2xls\output.csv&quot;)
data = Replace(Replace(data, vbCrLf, &quot;;&quot;), &quot;;;&quot;, vbCrLf)
Set ts = f.OpenAsTextStream(ForWriting, TristateUseDefault)
ts.Write data
ts.Close</code></pre></div><p>Это &quot;скелет&quot; - без проверок наличия файлов, папок, доступности файлов на запись.</p><p>Если требуется именно эксель, то вместо записи в текстовой файл обрабатываем записи поэлементно. Например так:<br /></p><div class="codebox"><pre><code>
Dim Rows, Cells, i, j
Rows = Split(data, VbCrLf &amp; VbCrLf, -1, vbTextCompare)
For i = LBound(Rows) to UBound(Rows)
 Cells = Split(Rows(i), VbCrLf, -1, vbTextCompare)
 For j = LBound(Cells) to UBound(Cells)
  wscript.echo &quot;Cells[&quot; &amp; j &amp; &quot;] = &quot; &amp; Cells(j)
 Next
Next</code></pre></div><p>Вместо вывода в консоль, пишем в ячейки(i, j тут как раз пригодятся <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" />) используя экселевский объект.</p><p>P.S. &quot;On Error Resume Next&quot; есть, а где &quot;On Error GoTo 0&quot;? Ошибки нужно обрабатывать а не игнорировать <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /></p>]]></description>
			<author><![CDATA[null@example.com (BeS Yara)]]></author>
			<pubDate>Thu, 28 Apr 2011 10:09:06 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=47902#p47902</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBScript: Как преобразовать текстовый файл в файл xls]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=47901#p47901</link>
			<description><![CDATA[<p>Эх, если бы я знал как. Если честно сказать, то это мой второй скрипт в жизни <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /><br />Я вчера целый день писал код как из 300 текстовых файлов собрать все данные в один, вроде получилось <br />Для меня как новичка это подвиг <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /></p><div class="quotebox"><blockquote><p>Код:<br />Dim objFSO: Set objFSO = CreateObject(&quot;Scripting.FileSystemObject&quot;) </p><p>JoinTXT &quot;C:\tmp&quot; </p><p>Sub JoinTXT(strFolderPath) <br />Dim objFolder, objFile, strTempText, strAllText </p><p>If objFSO.FolderExists(strFolderPath) Then <br />&nbsp; &nbsp; Set objFolder = objFSO.GetFolder(strFolderPath) <br />&nbsp; &nbsp; For Each objFile In objFolder.Files <br />&nbsp; &nbsp; &nbsp; &nbsp; strExt = LCase(objFSO.GetExtensionName(objFile.Path)) <br />&nbsp; &nbsp; &nbsp; &nbsp; If (strExt = &quot;&quot;) Or (strExt = &quot;log&quot;) Then <br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; strTempText = ReadFile(objFile.Path) <br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; If strTempText &lt;&gt; &quot;&quot; Then <br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; strAllText = strAllText &amp; strTempText &amp; vbCrLf&nbsp; <br />		&#039;&amp; vbCrLf &quot;===== &quot; &amp; objFile.Name &amp; &quot; =====&quot; &amp; Разделение между строк<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; End If <br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#039;objFile.Delete True&nbsp; &nbsp;&#039; удалить файл <br />&nbsp; &nbsp; &nbsp; &nbsp; End If <br />&nbsp; &nbsp; Next <br />End If </p><p>Set objFile = objFSO.CreateTextFile(strFolderPath &amp; &quot;\AllTextFiles.txt&quot;) <br />objFile.Write strAllText <br />objFile.Close <br />End Sub </p><p>MsgBox &quot;Результирующий файл сформирован&quot; <br />Set objFSO = Nothing <br />Wscript.quit </p><p>Function ReadFile(strTempFilePath) <br />On Error Resume Next </p><p>Dim objTempFile, strText <br />&nbsp; &nbsp; Set objTempFile = objFSO.OpenTextFile(strTempFilePath, 1, False) <br />&nbsp; &nbsp; strText = objTempFile.Readall <br />&nbsp; &nbsp; objTempFile.Close </p><p>ReadFile = strText </p><p>End Function</p></blockquote></div><p>Правда не без помощи документации и интернета <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /></p>]]></description>
			<author><![CDATA[null@example.com (Pitkin)]]></author>
			<pubDate>Thu, 28 Apr 2011 09:48:18 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=47901#p47901</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBScript: Как преобразовать текстовый файл в файл xls]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=47900#p47900</link>
			<description><![CDATA[<div class="quotebox"><cite>Pitkin пишет:</cite><blockquote><p>... чтобы&nbsp; в самом файле csv строки автоматически становились столбцами...</p></blockquote></div><p>Приведите содержимое текстового файла к виду<br /><strong><span style="color: green">Строка 1;Строка 2;Строка 3<br />Строка 1;Строка 2;Строка 3<br />Строка 1;Строка 2;Строка 3</span></strong></p>]]></description>
			<author><![CDATA[null@example.com (Dmitrii)]]></author>
			<pubDate>Thu, 28 Apr 2011 09:42:44 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=47900#p47900</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBScript: Как преобразовать текстовый файл в файл xls]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=47898#p47898</link>
			<description><![CDATA[<p>Да, можно сделать и так. Извините в первом посте забыл указать, что преобразование нужно с целью изменения строк в столбцы, то есть<br />Есть текстовый документ txt, в котором находятся данные в таком виде: <br />------------ <br />Строка 1 <br />Строка 2 <br />Строка 3 <br />Строка 1 <br />Строка 2 <br />Строка 3 <br />Строка 1 <br />Строка 2 <br />Строка 3 <br />------------ <br />Как данный документ импортировать в excel чтобы данные приняли вид таблицы <br />из трех столбцов&nbsp; <br />&nbsp; &nbsp; &nbsp; &nbsp; Строка1&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Строка2&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Строка3 <br />&nbsp; &nbsp; &nbsp; &nbsp; Строка1&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Строка2&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Строка3 <br />&nbsp; &nbsp; &nbsp; &nbsp;...........&nbsp; &nbsp; &nbsp; &nbsp;..............&nbsp; &nbsp; &nbsp; &nbsp;.......... <br />&nbsp; &nbsp; &nbsp; &nbsp; Строка1&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Строка2&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Строка3</p><p>Хотя, в excel можно не импортировать, просто, чтобы&nbsp; в самом файле csv строки автоматически становились столбцами, подскажите пожалуйста если кто знает.</p><p>Попробую пока с формулами в самом excele поколдовать.</p>]]></description>
			<author><![CDATA[null@example.com (Pitkin)]]></author>
			<pubDate>Thu, 28 Apr 2011 09:35:42 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=47898#p47898</guid>
		</item>
	</channel>
</rss>
