ArrayIndexOutOfBounds由于CSV中的换行而导致的异常

时间:2017-07-24 12:02:20

标签: java excel csv

我想将我的csv文件上传到数据库。由于CSV中的换行符,我得到arrayIndexOutOfBounds异常。 excel中有一些单元格有新行。我已经通过删除excel中的换行符来尝试所有方法,在代码中用空格替换\ n。我正在使用Putty编写和运行程序。当我在putty上传csv文件时,即使我使用公式删除换行符,这些行也会换行。(它现在在Excel中正确显示,但在putty中,它会带来休息。)

这是我正在阅读csv的代码:

            try (BufferedReader br = new BufferedReader(new FileReader(csvFile)))
            {
                    int count=0;
                    int lastPersonId;
                    int listId=0;
                    int lineNo=0;
                      while ((line = br.readLine()) != null)
                      {
                            line = line.replace("\n", "").replace("\r", "").trim();

                            if (count==0)
                            {
                                    count++;
                                    continue;
                            }
                            String[] data = line.split(splitBy,-1);

                            prep = DatabaseConfig.dbConnection.prepareStatement(query,Statement.RETURN_GENERATED_KEYS);
                            prep.setString(1,data[1]);
                            prep.setString(2,data[2]);
                            prep.setString(3,data[3]);

我该如何解决这个问题?

提前致谢:)

2 个答案:

答案 0 :(得分:0)

CSV格式提供某种形式的转义。如果单元格值包含换行符,则用"换行。所以你应该处理这个问题。

我建议您使用一些CSV解析库。

答案 1 :(得分:0)

此问题已解决。在删除Excel表格中的换行符时,我的方式是错误的。 我现在在做什么=

1)在谷歌电子表格中,按ctrl + F然后更多选项(三个点)=去查找和替换

2)在查找框中输入\ n并选择“使用正则表达式搜索”复选框,然后点击全部替换

3)它将取代不必要的换行符。 此Excel中的CSV文件为我工作。

非常感谢大家的宝贵建议。我现在将处理CSVparsers,OpenCSV等。 谢谢:))