我需要修改两个CSV文件中的字符串。我使用的是Windows XP。
文件名为 pi_jobs.csv 和 pi_offices.csv 。
我在每条记录之间需要两个空格,然后在最后一条记录之后需要两个空白行。
文件由基于Access的应用程序生成,我已经能够通过SQL语句在输出中创建空行(基本上,查询中的最后一个字段连接两组Chr(10)和Chr(13)个字符,给我两个换行符和两个回车符。)
但是,当我将文件输出到CSV时,它将那些回车符和换行符作为记录中的单独字段包含在内,从而在字段前放置一个逗号,并在字段周围加引号。
我在下面提供了一个例子。注意第一和第二条记录之间的差距。第一条记录末尾有一个逗号和引号,第二条记录开头前有一个右引号:
“经认可的医疗协助计划,有资格获得AAMA或AMT认证;需要高中文凭或GED;至少三年医疗或相关业务办公室工作经验;静脉切开术和注射给药的工作知识。期望:会员学位。“,”
“
“TBP20113105-82792”,“chicago-edgewater”,“9999999”,“TBP医疗助理”
我在这里对页面格式非常小心 - 这正是行间距的样子。该间距有三个线间隙。但是,它应该是这样的:
“经认可的医疗协助计划,有资格获得AAMA或AMT认证;需要高中文凭或GED;至少三年医疗或相关业务办公室工作经验;静脉切开术和注射给药的工作知识。期望:合作学位。“
“TBP20113105-82792”,“chicago-edgewater”,“9999999”,“TBP医疗助理”
答案 0 :(得分:1)
这是一个纯粹的Access解决方案。
步骤1:在数据库中添加对Microsoft Scripting Runtime库的引用
步骤2:创建一个将打开表/查询并逐行读取记录并输出到.csv文件的函数
Function OutputToCsv()
Dim fs As FileSystemObject
Dim ts As TextStream
Dim rs As Recordset
On Error GoTo lberr
'use this if you query a single table
Set rs = CurrentDb.OpenRecordset("Select Column1, Column2, Column3 From NewTable")
'use this if your query DOES NOT have any parameters
'Set rs = CurrentDb.OpenRecordset("Select Column1, Column2, Column3 From NewQuery")
'use this if you use query WITH parameter(s)
'Dim qdf As QueryDef
'Set qdf = CurrentDb.QueryDefs("NewQuery")
'qdf.Parameters("Parameter1") = "" 'set the value for the parameter(s)
'Set rs = qdf.OpenRecordset
If (rs.RecordCount = 0) Then Exit Function
Set fs = New FileSystemObject
Set ts = fs.CreateTextFile("C:\NewFile.csv", True, False) 'this will overwrite the file each time
rs.MoveFirst
Do While Not rs.EOF
'Chr(34) is a quotation mark "
ts.WriteLine (Chr(34) & rs("Column1") & Chr(34)) 'format your record output
'ts.WriteLine (Chr(34) & rs("Column1") & Chr(34) & "," & Chr(34) & rs("Column2") & Chr(34)) 'in case you need to output more than one column
ts.WriteBlankLines (2) 'Add as many empty lines as you need
rs.MoveNext
Loop
ts.Close
MsgBox "Success!"
Exit Function
lberr:
MsgBox Err.Description
End Function
而且,这就是输出文件的样子: