2011-01-28 172 views
1

我有一个经典的ASP脚本创建一个CSV文件,但它不能正确写入分隔列。它基本上都写到第一列。经典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 = "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

当你说“它的作品”,你的意思是它正确加载到电子表格,如Excel?我认为Excel可能会将unicode文件解释为二进制文件(或至少是不同的格式)。 Anyroad,逗号仍然在那里:在Excel中,选择最左边的列,并使用数据 - >文本到列 – 2011-01-28 10:24:55

回答

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 

希望这会有所帮助。

2

正如你在数据行的开始和结尾有双引号,整行被解释为一个字段。