使用 ColdFusion 解析 CSV
Parsing CSV with coldfusion
我想创建一个新函数,它将获取 CSV 并从中解析数据,然后将其写入数据库。
到目前为止,我设法得到了这个:
<cfhttp method="get" url="C:\ColdFusion11\path\test.csv" name="csvData">
<cfoutput>#isQuery(csvData)#</cfoutput>
<cfloop query="csvdata" >
<p>
<cfloop list="#csvdata.columnlist#" index="i">
<cfoutput>
#csvdata['#i#'][currentRow]# -
</cfoutput>
</cfloop>
</p>
</cfloop>
我收到这个错误:
变量 CSVDATA 未定义
我不知道为什么会报这个错,因为我的var是在cfhttp里面定义的(还是我哪里做错了?)
这段代码对我有用:
<cffile action="read" file="C:\foo\bar\test.csv" variable="csvfile">
<cfloop index="index" list="#csvfile#" delimiters="#chr(10)##chr(13)#">
<cfquery name="importcsv" datasource="#systemDSN#">
INSERT INTO csvdemo (test1,test2,test3,test4)
VALUES
('#listgetAt('#index#',1, ',')#',
'#listgetAt('#index#',2, ',')#',
'#listgetAt('#index#',3, ',')#',
'#listgetAt('#index#',4)#'
)
</cfquery>
</cfloop>
<cfquery name="rscsvdemo" datasource="#systemDSN#">
SELECT * FROM csvdemo
</cfquery>
<cfdump var="#rscsvdemo#">
这是一个旧话题,但仍然有效。
cfml 中没有捆绑简单的 csv 工具,但是有很多方法可以解析 csv,
一个简单的技巧是使用 cfhttp,但您需要能够通过 http(s)
加载它
<cfhttp method="get" name="CSVQry"
url="#siteAddress#/data/table.csv"
firstRowAsHeaders="true"
columns="#COLUMNLIST#"
delimiter="#DELIMITER#">
</cfhttp>
一个更通用的解决方案是 Ben Nadels 的 csv 解析器,我真的可以推荐它。
https://www.bennadel.com/blog/483-parsing-csv-data-using-coldfusion.htm
我想创建一个新函数,它将获取 CSV 并从中解析数据,然后将其写入数据库。 到目前为止,我设法得到了这个:
<cfhttp method="get" url="C:\ColdFusion11\path\test.csv" name="csvData">
<cfoutput>#isQuery(csvData)#</cfoutput>
<cfloop query="csvdata" >
<p>
<cfloop list="#csvdata.columnlist#" index="i">
<cfoutput>
#csvdata['#i#'][currentRow]# -
</cfoutput>
</cfloop>
</p>
</cfloop>
我收到这个错误:
变量 CSVDATA 未定义
我不知道为什么会报这个错,因为我的var是在cfhttp里面定义的(还是我哪里做错了?)
这段代码对我有用:
<cffile action="read" file="C:\foo\bar\test.csv" variable="csvfile">
<cfloop index="index" list="#csvfile#" delimiters="#chr(10)##chr(13)#">
<cfquery name="importcsv" datasource="#systemDSN#">
INSERT INTO csvdemo (test1,test2,test3,test4)
VALUES
('#listgetAt('#index#',1, ',')#',
'#listgetAt('#index#',2, ',')#',
'#listgetAt('#index#',3, ',')#',
'#listgetAt('#index#',4)#'
)
</cfquery>
</cfloop>
<cfquery name="rscsvdemo" datasource="#systemDSN#">
SELECT * FROM csvdemo
</cfquery>
<cfdump var="#rscsvdemo#">
这是一个旧话题,但仍然有效。 cfml 中没有捆绑简单的 csv 工具,但是有很多方法可以解析 csv, 一个简单的技巧是使用 cfhttp,但您需要能够通过 http(s)
加载它 <cfhttp method="get" name="CSVQry"
url="#siteAddress#/data/table.csv"
firstRowAsHeaders="true"
columns="#COLUMNLIST#"
delimiter="#DELIMITER#">
</cfhttp>
一个更通用的解决方案是 Ben Nadels 的 csv 解析器,我真的可以推荐它。 https://www.bennadel.com/blog/483-parsing-csv-data-using-coldfusion.htm