2011-01-28 173 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

正如你在數據行的開始和結尾有雙引號,整行被解釋爲一個字段。