读取CSV或管道分隔文件

时间:2013-01-22 21:54:44

标签: coldfusion coldfusion-9 cffile

我正在尝试阅读使用|分隔符而不是,的csv文件。

我正在使用

<cffunction name="loadCSVfile" access="public" returntype="string"> 
    <cfargument name="filename" required="yes" default="">

    <cffile action="read" file="#filename#" variable="csvData">

    <cfreturn csvData>
</cffunction>

适用于,分隔符但不适用于|的文件。还有什么我需要做的才能使这个功能起作用吗?

这就是我调用函数的方式:

    <cfscript>
       csvloaderCFC = CreateObject("component","AlscCSVloader");
    </cfscript>


    <cfset csvfilename = DataDirectory&q_DataDirectory.name>

    <!---  backup CSV file ---->
    <cffile action= "copy" source = "#csvfilename#"  
                destination = "#DataDirectorybackup#"> 

    <!---  Load CSV data ---->
    <cfscript>
        csvData = csvloaderCFC.loadCSVfile(csvfilename);
    </cfscript>

    <cfdump var="#csvData#">

cfdump最终根本没有显示

管道分隔的样本

Location|patient_ID|First Name|Last Name|
111|468454|Eric |Gallegos |
111|468457|kelsey|anderson|
10|468459|Rivenda|Kaur|

以逗号分隔的样本

Location,patient_ID,First Name,Last Name,
111,468454,Eric ,Gallegos ,
111,468457,kelsey,anderson,
10,468459,Rivenda,Kaur,

1 个答案:

答案 0 :(得分:0)

除了CFFile调用之外,还有更多的事情可以将CSV作为某种结构。 CFFile敌人不是自己做的。 (虽然奇怪的是CFHttp确实如此)老实说,你最好的选择可能是使用Java库。 Apache提供了几种:http://commons.apache.org/csv/

这些应该会给你一些相当容易处理的东西。

如果您想要一个“纯粹的”coldfusion CSV选项,您可以查看此博客文章中的特定impl: http://www.bennadel.com/blog/483-Parsing-CSV-Data-Using-ColdFusion.htm

基本上你需要阅读整个内容,然后解析它。