我有一个CSV文件,其中2列包含几个不同的文本值,例如
Column 1: Reptiles, Health, Hygiene
Column 2: Purity
我需要使用VBscript将这些列拆分为新的CSV文件,而不更改当前文件,预期输出如下所示:
Column 1 Column 2 Reptiles Reptiles Health Health Hygiene Hygiene Purity Purity
不幸的是(?)必须用VB Script完成它。
以下是数据外观的示例(当然,数据通过文件1中的相同列的一些额外条目一致地重复。
以下是它需要查看的示例,但它需要重复,直到原始文件中第1列和第2列的所有唯一条目都作为单个条目输入到新文件中的第1列并复制到第2列在同一个新文件中。 e.g。
请求的文本格式示例:
原始档案:
Column 1,Column 2
"Reptiles, Health, Hygiene",Purity
新文件:
Column 1,Column 2
Reptiles,Reptiles
Health,Health
Hygiene,Hygiene
Purity,Purity
答案 0 :(得分:0)
我认为将FileSystemObject
与Split
函数一起使用是一件简单的事情。
假设每个输入行只是一组数据,您可以删除双引号并从那里处理
尝试使用此VB脚本( 编辑以分别处理标题行 ):
Const Overwrite = True
Set ObjFso = CreateObject("Scripting.FileSystemObject")
Set ObjOutFile = ObjFso.CreateTextFile("My New File Path", Overwrite)
Set ObjInFile = ObjFso.OpenTextFile("My Old File Path")
' Skip processing first header line and just write it out as is
strLine = ObjInFile.ReadLine
ObjOutFile.WriteLine strLine
Do Until ObjInFile.AtEndOfStream
' Remove all double quotes to treat this as one set of data
strLine = Replace(ObjInFile.ReadLine, """","")
varData = Split(strLine,",")
' Write out each element twice into its own line
For i = 0 to uBound(varData)
ObjOutFile.WriteLine varData(i) & "," & varData(i)
Next i
Loop
ObjInFile.Close
ObjOutFile.Close