1

csv ファイルを検証したい。数値、日付、ブール値、テキスト フィールドを含む Excel ファイルから変換されています。だから私はcsvファイルを検証する必要があります。Csvvalidator を 1 つ使用しましたが、正しく動作しません。

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 に答える