Задать вопрос

VBS — как создать скрипт для конвертирования CSV в TXT?

Добрый день, ранее я использовал скрипт для конвертирования xls в txt с разделителями табуляции:

Set objArgs = WScript.Arguments
InputName = objArgs(0)
OutputName = objArgs(1)
Set objExcel = CreateObject("Excel.application")
objExcel.application.visible=false
objExcel.application.displayalerts=false
set objExcelBook = objExcel.Workbooks.Open(InputName)
objExcelBook.SaveAs OutputName, -4158
objExcel.Application.Quit
objExcel.Quit

Но теперь необходимо делать то же, но из CSV.

Насколько я понимаю, он должен сохранять в нужный мне формат если использовать -4158 или 20. Но и в том и другом случае, если исходный файл csv, скрипт сохраняет txt с разделителями ;
  • Вопрос задан
  • 3398 просмотров
Подписаться 2 Оценить 1 комментарий
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Основы Excel для работы
    1 неделя
    Далее
  • Skillbox
    Excel + Google Таблицы с нуля до PRO
    4 месяца
    Далее
  • SF Education
    Excel academy + Power BI для анализа данных
    2 месяца
    Далее
Решения вопроса 1
@SashaSkot
Специалист широкого профиля
Const OpenAsDefault = -2
Const FailIfNotExist = 0
Const ForReading = 1
Const ForWriting = 2

Set oFSO = CreateObject("Scripting.FileSystemObject")
Set fCSVFile = _
oFSO.OpenTextFile("C:\path\file.csv", ForReading, FailIfNotExist, OpenAsDefault)

sFileContents = fCSVFile.ReadAll
fCSVFile.Close
sFileContents = Replace(sFileContents, ";",vbTab))

Set fCSVFile = oFSO.OpenTextFile("C:\path\file.csv", ForWriting, True)
fCSVFile.Write(sFileContents)
fCSVFile.Close

Вообще разделители используется из настроек Региона и языка системы. Попробуйте заменить ; на табуляцию и запустите ваш скрипт.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы