1

我想验证一个 csv 文件。它是从一个包含数字、日期、布尔值、文本字段的 excel 文件转换而来的。所以我需要验证 csv 文件。我使用了一个 Csvvalidator,但它不能正常工作。

List<Field> list = new ArrayList<Field>();

        list.add(new Field(1, Type.TEXT, notOptional));                 //emailaddress  
        list.add(new Field(2, Type.TEXT, notOptional));                 //firstname
        list.add(new Field(3, Type.TEXT, notOptional));                 //middlename
        list.add(new Field(4, Type.TEXT, optional));                    //lastname
        list.add(new Field(5, Type.DATE, optional));                    //dob
        list.add(new Field(6, Type.TEXT, notOptional));                 //gender
        list.add(new Field(7, Type.TEXT, optional));                    //altemailaddress
        list.add(new Field(8, Type.TEXT, optional));                    //currentStreet1
        list.add(new Field(9, Type.TEXT, optional));                    //currentStreet2
        list.add(new Field(10, Type.TEXT, optional));                   //currentCity
        list.add(new Field(11, Type.TEXT, optional));                   //currentState
        list.add(new Field(12, Type.NUMBER, optional));                 //currentPincode
        list.add(new Field(13, Type.TEXT, optional));                   //permanentStreet1
        list.add(new Field(14, Type.TEXT, optional));                   //permanentStreet2
        list.add(new Field(15, Type.TEXT, optional));                   //permanentCity
        list.add(new Field(16, Type.TEXT, optional));                   //permanentState
        list.add(new Field(17, Type.NUMBER, optional));                 //permanentPincode
        list.add(new Field(18, Type.NUMBER, optional));                 //mobile
        list.add(new Field(19, Type.NUMBER, notOptional));              //phone
        list.add(new Field(20, Type.TEXT, optional));                   //emailsubscription
        list.add(new Field(21, Type.TEXT, optional));                   //mobilesubscription
        System.out.println(list.size());

        CsvValidator validator = new CsvValidatorImpl(AppConstants.OUTPUT_FILE, list, "|");

excel 和 csv 有 21 个字段,但是当我编译它时,它会说这些东西。

第 1 行无效,包含 165 个必需的 21 个字段。

第 2 行无效,包含 157 个必填字段 21 个字段

第 3 行无效,包含 161 个必需的 21 个字段。

第 4 行无效,包含 137 个必填项 21 个字段

4

1 回答 1

2

试试SuperCSV - 它允许您轻松读取文件并为一行中的每一列定义类型。

于 2013-08-12T08:45:33.443 回答