-1

我正在尝试使用CFCSV custom tag解析 CSV 。这是我的 CFML 代码:

<cfset data = fileRead( "inputtest.csv", "utf-8" ) />
<cfcsv action="parse" data="#data#" variable="csv" hascolumnnames="true" delimiter="," />
<cfloop query="csv">
    <cfoutput>#csv.name#</cfoutput>
</cfloop>

..和我的测试CSV:

"Email","Name","Address1","Address2","City","State","ZIP","Country","Phone"
"somedude@foobar.com","Some Dude","3129 golden bridge ave",,"somecity","somestate","somezip","usa","1234567890"

我得到的错误是:

在查询中找不到列 [NAME],列是 [Email,Name,Address1,Address2,City,State,ZIP,Country,Phone]

如果我将循环更改为输出名称以外的任何内容,它就可以工作。但我不能得到这个名字。即使将 columname 更改为 to 也会Name导致TheName相同的错误:

在查询中找不到列 [THENAME],列是 [Email,TheName,Address1,Address2,City,State,ZIP,Country,Phone]

但同样,我输出电子邮件地址或任何其他列都没有问题。更改 CSV 中列的位置和/或从cfloop queryplus更改cfoutput为 justcfoutput query无效。

如果我cfdump查询,该列就在那里。

4

2 回答 2

5

我能够通过在 CSV 文件的开头添加换行符来重现该问题,但是在解析列标题行时出现问题时,您可能会看到同样的错误。

于 2012-09-05T21:13:01.223 回答
1

CSV 的格式有问题,我无法弄清楚确切的问题。为了解决这个问题,我将 CSV 重新导出为制表符分隔的文本文件,在 Calc 中打开它,然后以制表符分隔的格式保存。现在它起作用了。我希望我知道原始文件有什么问题。

于 2012-09-05T20:39:28.607 回答