【发布时间】:2016-05-23 15:07:19
【问题描述】:
我想将;-delimited CSV 转换为 tab-delimited 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;父产品;维护;MCH 1;10001;10001;ABC 2;20001;20001;ABC 3;30001;30001;ABC
输出文件是
PIM ID;父产品;维护;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), "")
【问题讨论】:
-
...CreateTextFile(...Export_File.txt")。嗯 - 为什么这会创建.txt而不是.csv? -
@Stephan 即使我从 Export_File.txt 更改为 Export_File.txt ,它仍然会创建一个制表符分隔的文本文件
-
请显示您用于修改文件的实际代码。我的代码不太可能删除一些分号但保留其他分号。此外,我刚刚使用您的示例数据测试了我的代码,并且代码完全按照它应该做的事情。还要检查输入文件的编码。