转换;将CSV分隔为制表符分隔的CSV

时间:2016-05-19 14:46:49

标签: csv vbscript

我想将; - 分隔的CSV转换为制表符分隔的CSV。我尝试过一些选择。我可以将它转换为制表符分隔的文本文件,但我需要制表符分隔的CSV文件作为输出。我需要一个VBScript代码。

我已经尝试了以下代码,但可以转换为制表符分隔的文本文件,但我想要制表符分隔的CSV文件

Dim objFSO : Set objFSO = CreateObject("Scripting.FileSystemObject")
Dim objFile : Set objFile = objFSO.OpenTextFile("\\vss22\Export\List\Export_File.csv")
Dim objOut : Set objOut = objFSO.CreateTextFile("\\vss22\Export\List\Export_File.txt")

arrData = objFile.ReadAll
objOut.Write Replace(Replace(arrData, ";",vbTab), chr(34), "")
objFile.Close
objOut.Close

编辑:这是我的输入文件示例。我使用了@ansgar提供的代码,但是分号(;)没有替换为tab。

PIM ID;Parent Product;Maintenance;MCH
 1;10001;10001;ABC
 2;20001;20001;ABC
 3;30001;30001;ABC

输出文件是

PIM ID;Parent Product;Maintenance;MCH
 11000110001ABC
 22000120001ABC
 33000130001ABC

以下是我正在使用的代码:

file = "\\vwq2702\HeilerExport\TaskList\Archive\List Values.csv"

Set fso = CreateObject("Scripting.FileSystemObject")

txt = fso.OpenTextFile(file).ReadAll
fso.OpenTextFile(file, 2).Write Replace(Replace(txt, ";", vbTab), Chr(34), "")

1 个答案:

答案 0 :(得分:2)

只需将修改后的文本写回原始文件(阅读文件后必须先关闭才能打开文字):

file = "\\vss22\Export\List\Export_File.csv"

Set fso = CreateObject("Scripting.FileSystemObject")

txt = fso.OpenTextFile(file).ReadAll
fso.OpenTextFile(file, 2).Write Replace(Replace(txt, ";", vbTab), Chr(34), "")