上传CSV文件并检查其类型,以便在Groovy / grails中上传

时间:2014-05-02 10:11:11

标签: excel grails csv

我有一个应用程序上传CSV文件以创建联系人。我在上传文件之前检查文件是否为CSV。如果不是CSV,则通知用户仅选择CSV个文件。我这样做的方式如下。

 if (file.getContentType() != "application/vnd.ms-excel") {
       //Notifies the user
                return
 } 

只要在系统上安装了Microsoft Excel,这就完美无缺。如果没有在系统上安装MS Excel,我该怎么做呢?

1 个答案:

答案 0 :(得分:0)

您可以使用以下插件从文件中提取内容:

http://grails.org/plugin/csv

然后使用以下代码将文件头与现有的标题列表进行比较:

def verifyCsvFile = {file->
    def iWantTheseHeaders=['a','b','c'] //you can get this from config or constants
    file.eachCsvLine { tokens ->


        //First row in the represents the headeres of the csv/xls file. 
        if(index == 0){
            def headers =[]
            tokens.each{
                headers.add(it.trim())
            }

            isValidColumns = headers.containsAll(iWantTheseHeaders)
            // check if Required columns were found 
            if(!isValidColumns){
                return false
            }
        }


    }
}