我有像这样"1233","abcxyz","1,500","Qwerty","25,000"
如何在classicASP中导入CSV时删除逗号此类值("1,500"
,"25,000"
)
答案 0 :(得分:0)
如果您的CSV不是太大,请实现 FileSystemObject.OpenTextFile 并逐个字符地读取它,将结果累积为String。做一个比较逻辑,忽略阅读时发现的所有双引号。这并不是那么容易,因为你将处理报价,因此需要一些逃避技术。
如果您按顺序编号,如果这些数字用逗号标记小数点或数千(数百万等),那么您将遇到更多麻烦,导致此示例(“1,500”,“25,000”)之后的内容并且通过char写char将产生:(1,500,25,000)。对此的解决方案是将双引号之间的所有逗号转换为;
。
path = Server.MapPath("\yoursite\yourfile.csv") 'this is absolute path on server (c:\ etc) - not url!
set fs = CreateObject("Scripting.FileSystemObject")
if fs.FileExists(path) then
set file = fs.OpenTextFile(path, 1)
txt = file.ReadAll
for i = 1 to (Len(txt)-1)
if file.Read(i) = """ then
i = i + 1
else
txtaux = txtaux & file.Read(i)
end if
next
file.Close()
else
txt = " - error - "
end if
txt = txtaux
set fs = nothing
set file = nothing
如果这样运行(不确定因为我目前没有ASP的测试环境)那么你将把所有的CVS都放在 txt 字符串var中。 Buuuuttt ......我们只面对报价问题,而不是逗号...所以你必须在那里做一个解决方法,也许在里面实现另一个 if 来检测逗号是否在引号内,然后它需要更改为; ,例如,作为最终结果将为您带来的东西:10,000; 25,000等等。
答案 1 :(得分:0)
如果您的问题是因为逗号而解析CSV文件,您应该首先使用另一种方法来读取文件。 CSV格式比用逗号分隔的值更复杂,因此最好使用经过试验和测试的方法。
查看本文,了解如何使用ASP(使用JScript)读取CSV文件:http://mindmeat.blogspot.dk/2014/05/reading-excel-files-in-classic-asp.html
它确实需要在服务器上安装ACE驱动程序。