我有一个经典的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中写外国符号。当然必须有一种方法来保持这一点,并保持列完好无损?
答案 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
希望这有帮助。