0

我正在尝试读取使用 |分隔符而不是.csv 的 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,
4

1 回答 1

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

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

于 2013-01-23T17:20:56.860 回答