Классический ASP пишет CSV-файл, не записывая данные в отдельные столбцы - PullRequest
1 голос
/ 28 января 2011

У меня есть классический 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 ]

2 голосов
/ 29 июня 2013

Поскольку у вас есть двойные кавычки в начале и конце строки данных, вся строка интерпретируется как одно поле.

0 голосов
/ 28 января 2011

Закончено немного покопаться, и хотя это немного нелогично, но если вы разделяете свои поля символом 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

Надеюсь, это поможет.

...