You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VB Script实现CSV按指定列次数复制行并添加计数器

VB Script实现CSV行按指定次数复制并添加计数器列

以下是满足需求的完整VB Script代码,你只需要替换代码中的输入、输出文件路径即可使用:

' 创建文件系统对象,用于读写文件
Set fso = CreateObject("Scripting.FileSystemObject")

' 定义输入、输出文件路径,请根据实际情况修改
inputFilePath = "input.csv"
outputFilePath = "output.csv"

' 打开输入文件并读取所有行到数组
Set inputFile = fso.OpenTextFile(inputFilePath, 1) ' 1 = 只读模式
lines = Split(inputFile.ReadAll, vbNewLine)
inputFile.Close

' 打开输出文件准备写入,覆盖已有内容
Set outputFile = fso.OpenTextFile(outputFilePath, 2, True) ' 2 = 写入模式,True = 文件不存在则创建

' 处理标题行:添加Counter列
If UBound(lines) >= 0 Then
    header = lines(0) & ",Counter"
    outputFile.WriteLine header
End If

' 循环处理每一行数据
For i = 1 To UBound(lines)
    currentLine = Trim(lines(i))
    ' 跳过空行
    If currentLine <> "" Then
        ' 拆分当前行的内容
        parts = Split(currentLine, ",")
        ' 获取最后一列的重复次数,转成整数
        repeatTimes = CInt(parts(UBound(parts)))
        ' 循环复制行,计数器从1开始
        For counter = 1 To repeatTimes
            ' 拼接新行:原内容 + 计数器值
            newLine = currentLine & "," & CStr(counter)
            outputFile.WriteLine newLine
        Next
    End If
Next

' 关闭输出文件,释放对象
outputFile.Close
Set fso = Nothing

WScript.Echo "处理完成,输出文件已生成:" & outputFilePath

代码关键说明:

  • 文件系统对象:通过CreateObject("Scripting.FileSystemObject")创建,是VBScript中操作文件、文件夹的核心工具。
  • 行读取与拆分:使用Split(inputFile.ReadAll, vbNewLine)把整个文件内容按换行符拆分成数组,方便逐行处理;用Split(currentLine, ",")拆分每行的字段。
  • 标题处理:直接在原标题末尾追加,Counter,确保输出文件的列标题包含新增的计数器列。
  • 重复逻辑:通过内层循环,根据最后一列的数字控制复制次数,每次循环生成带当前计数器值的新行并写入输出文件。
  • 空行处理:用Trim(currentLine) <> ""跳过文件中的空行,避免无效处理。

示例验证:

用你提供的示例输入文件运行脚本后,输出文件内容如下(修正了原示例中Elaine行的笔误,确保每行都包含Counter值,符合列标题逻辑):

Name,ID,Lines,Counter
Fred Smith,102,2,1
Fred Smith,102,2,2
Elaine Edwards,576,1,1
Joe Bloggs,987,3,1
Joe Bloggs,987,3,2
Joe Bloggs,987,3,3

内容的提问来源于stack exchange,提问作者js26233

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 00:21:26