经典ASP编写csv文件,而不是将数据写入单独的列

时间:2011-01-28 10:17:42

标签: file-io csv asp-classic

我有一个经典的ASP脚本创建一个CSV文件,但它没有正确写入单独的列。它基本上都写到第一列。

dim filesavepath
filesavepath =  site_pathRoot & "dynamic/pdf/" & fileName & ".csv"

set FSO = Server.CreateObject("scripting.FileSystemObject")

set csvfile = FSO.CreateTextFile(filesavepath, true,true)

csvfile.writeLine(Head)

其中head是一个变量

Head = "Date, Name, Recipe Name, Email, Joined Mailing List?, Site, Suggestion Content"

如果我使用

set csvfile = FSO.CreateTextFile(filesavepath, true)

它有效,但我需要使用

set csvfile = FSO.CreateTextFile(filesavepath, true,true)

前一阵子因为我需要在CSV中写外国符号。当然必须有一种方法来保持这一点,并保持列完好无损?

2 个答案:

答案 0 :(得分:2)

由于您在数据行的开头和结尾都有双引号,整行被解释为一个字段。

答案 1 :(得分:0)

进行了一些挖掘,虽然它有点反直觉,但是如果你用TAB字符分隔你的字段,那么Excel似乎很好地解析了Unicode文件。例如这对我有用:

dim filesavepath
filename = "bla"
filesavepath =  fileName & ".csv"
QUOT = """"
COMMA = "   " '//this is now a TAB character
Head = "Date    Name"
line1 = "2001-01-01" & COMMA & QUOT & "Frank" & QUOT
line2 = "2002-01-01" & COMMA & QUOT & "Jan" & QUOT

set FSO = CreateObject("scripting.FileSystemObject")

set csvfile = FSO.CreateTextFile(filesavepath, true, true)

csvfile.writeLine(Head)
csvfile.writeLine(line1)
csvfile.writeLine(line2)
csvfile.writeLine(QUOT)
csvfile.close

希望这有帮助。