csv - 使用 VBScript 将 CSV 列数据拆分为新的 CSV 文件
问题描述
我有一个 CSV 文件,其中 2 列包含几个不同的文本值,例如
Column 1: Reptiles, Health, Hygiene
Column 2: Purity
我需要使用 VBscript 将这些列拆分为新的 CSV 文件而不更改当前文件,新 CSV 文件中的预期输出如下所示:
第 1 栏 第 2 栏 爬行动物爬行动物 健康 健康 卫生 卫生 纯度纯度
不幸的是(?)它必须用 VB 脚本来完成,别无其他。
这是数据外观的示例(当然,数据通过文件 1 中的相同列不断重复一些额外的条目。
这是一个示例,说明它的外观,但它需要向下重复,直到原始文件中第 1 列和第 2 列的所有唯一条目都作为单个条目输入到新文件中的第 1 列并复制到第 2 列同一个新文件。例如
根据要求以文本格式举例:
原始文件:
Column 1,Column 2
"Reptiles, Health, Hygiene",Purity
新文件:
Column 1,Column 2
Reptiles,Reptiles
Health,Health
Hygiene,Hygiene
Purity,Purity
解决方案
我认为这是使用FileSystemObject
withSplit
函数的简单问题。假设每个输入行只是一组数据,您可以删除双引号并从那里处理
试试这个 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
推荐阅读
- java - 仅当主监听器更新时,如何将来自主 EventListener 的 MesageReceivedEvent 与线程内的新变量同步
- python - 使用 scipy solve_bvp 解决复杂的 BVP 问题
- email - 如何为 Firebase 身份验证编写红色电子邮件登录按钮?
- c# - asp.net 核心 web api FluentValidation 与控制器验证
- python-3.x - TypeError:只能将元组(不是“str”)连接到元组错误
- javascript - 如何保证 Promise 中的代码首先在 Javascript 中运行?
- mysql - 对多种类型的数字和字符进行排序
- angular7 - 如何在 Angular 7 中的不同库之间共享全局 scss 文件?
- sql - 将日期范围从单行拆分为多行显示的月份
- android - V/FA:不活动,与服务断开连接 问题