Конвертирование txt-файла в xls с помощью Powershell

В моём скрипте два обязательных параметра: путь к исходному текстовому файлу, и знак разделитель (по умолчанию — пробел):

Считываем наш файл и запускаем Excel:

Для наглядности я всегда в своих скриптах добавляю поддержку стандартных параметров, в частности –Verbose для того, чтобы было видно, что в данный момент делает скрипт:

В частности, в данном скрипте кроме вывода собственных сообщений, при задании —Verbose я ещё делаю видимым Excel. (Всегда нравится наблюдать за реакцией коллег, когда после нескольких взмахов руками над клавиатурой запускается Excel, сам записывает данные, сам форматирует текст и закрывается :))

Стандартные подготовительные действия для последующей работы с Excel:

Далее начинается непосредственно работа. Каждая строка из файла разбивается на подстроки (блоки, разделённые указанным символом разделителем) и каждый блок записывается в свою собственную ячейку:

По сути это всё. Далее при необходимости можно форматировать файл, как будет угодно, например выровнять ширину ячеек, чтобы текст помещался:

Осталось сохранить результат и выйти. В моём случае xls-файл сохраняется в том же каталоге, что и исходный текстовый файл, с тем же именем (за исключением расширения):

Как-то читал, что COM-объекты устроены не так, как объекты .NET, и за ними нужно “вручную” освобождать память, вот так:

Конечно, это не комплексное решение: здесь нет проверки на то является-ли указанный файл действительно текстовым, присутствуют-ли в нём разделители, и много чего ещё. Я только показал алгоритм работы.

Обновлено: 07.05.2019 — 15:07

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *