Исключение SuperCsvEx (массив nameMapping и sourceList должны иметь одинаковый размер). Происходит при преобразовании файла CSV в файл Excel с использованием CsvMapReader. - PullRequest
0 голосов
/ 13 мая 2018

Я конвертирую CSV-файл в Excel, используя CsvMapReader.Но для нескольких файлов я получаю исключение, как показано ниже:

Исключение в потоке "main" org.supercsv.exception.SuperCsvException: массив nameMapping и sourceList должны иметь одинаковый размер (nameMapping length = 0,sourceList size = 11) context = null

Перепробовал много альтернатив, но не смог решить.

Пожалуйста, помогите решить эту проблему, вставив часть моего кода:

String fName = filename;
String outputFile = "";
Workbook wb = new HSSFWorkbook();
FileOutputStream fileOut;

if(!new File(filename).exists()){    
    System.out.println("File Not Found");

} else{
    try {
        ICsvMapReader csvMapReader = new CsvMapReader(new FileReader(
                fName), CsvPreference.EXCEL_PREFERENCE);


        final String[] headers = csvMapReader.getHeader(true);

        Map csvRow;
        outputFile = fName.substring(0, fName.length() - 4);
        fileOut = new FileOutputStream(outputFile + ".xls");
        Sheet sheet = wb.createSheet("products");

        int rowNo = 0;
        createExcelHeader(sheet, rowNo, fName);    //Seperate function      

        **while ((csvRow = csvMapReader.read()) != null) {** //getting exception at this point
            rowNo++;
            Row excelRow = sheet.createRow(rowNo);
            createExcelRow(csvRow, excelRow, fName); //Seperate function
        }

        csvMapReader.close();
        wb.write(fileOut);
        fileOut.close();

        System.out.println("*");

    } catch (FileNotFoundException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}
...