在CSV文件的第一行之后添加新行

时间:2016-03-13 22:59:37

标签: csv vbscript

我有一个CSV文件,其内容如下:

"week","Country"
201504,"IN"
201505,"JP"

我需要在第一行之后添加一个新行(即"week","Country"之后),并且还需要将12345678,"AB"作为内容添加到此新行。我尝试拆分成数组并使用vbnewline,如下面的代码所示,但它没有工作。有人可以帮我解决这个问题:

set objFSO = CreateObject("Scripting.FileSystemObject")
set objInFile = objFSO.OpenTextFile("C:\I_Calls.csv", 1, true, 0)
strContents = objInFile.ReadAll
objInFile.Close
Dim arrRows
arrRows = split(strContents, vbNewLine)
arrRows = arrRows(0) & vbNewLine
strContents = join(arrRows, vbNewLine)
set objOutFile = objFSO.OpenTextFile("C:\I_Calls.csv", 2, true, 0)
objOutFile.WriteLine strContents
objOutFile.close

3 个答案:

答案 0 :(得分:2)

import { combineLatest } from 'rxjs'

答案 1 :(得分:2)

<。> .CSV是一个数据库表,没有“自然”的表格。订购关系。因此,坚持将数据放入特定行就像是说3+44+3不同 - 它表明缺乏理解。所以@ brettdj的回答是正确的(如果你添加一个EOL并引用AB)。

假设&#34;写入第二行&#34;这是一个愚蠢的老板或客户的坏主意,可怜的程序员应遵循以下一套一般规则:

为有经验的人设置A:

  1. 根据您的经验制定一个体面的计划
  2. 实施
  3. 为经验不足的人设置B:

    1. 从互联网上获取一些示例代码并使其适应您的问题
    2. 测试并记下明显问题
    3. 添加&#34;选项明确&#34;
    4. 查找所有使用的函数/子/方法,并确保您了解其完整功能集
    5. 使用Consts,变量和函数/ subs / methods
    6. 避免重复
    7. 从第一个版本中删除所有(货物崇拜/错误/重复)脂肪
    8. 两种方式都会给你

      Option Explicit
      
      Const csFSpec = "..\data\35976978.csv"
      Dim csEOL : csEOL = vbCrLf
      
      Function qq(s)
        qq = """" & s & """"
      End Function
      
      Dim oFS : Set oFS = CreateObject("Scripting.FileSystemObject")
      Dim oTS : Set oTS = oFS.OpenTextFile(csFSpec)
      Dim aRows : aRows = split(oTS.ReadAll(), csEOL, 2)
      oTS.Close
      Set oTS = oFS.CreateTextFile(csFSpec)
      oTS.Write Join(Array(aRows(0), Join(Array(12345678, qq("AB")), ","), aRows(1)), csEOL)
      oTS.Close
      

      输出:

      type ..\data\35976978.csv
      "week","Country"
      201504,"IN"
      201505,"JP"
      
      cscript 35976978.vbs
      
      type ..\data\35976978.csv
      "week","Country"
      12345678,"AB"
      201504,"IN"
      201505,"JP"
      

答案 2 :(得分:1)

您可以在Append模式

中打开文件
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objinFile = objFSO.OpenTextFile("C:\temp\I_lls.csv", 8, True)
objinFile.Write "12345678,AB"
objinFile.Close