我想将我的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]);
我该如何解决这个问题?
提前致谢:)
答案 0 :(得分:0)
CSV格式提供某种形式的转义。如果单元格值包含换行符,则用"
换行。所以你应该处理这个问题。
我建议您使用一些CSV解析库。
答案 1 :(得分:0)
此问题已解决。在删除Excel表格中的换行符时,我的方式是错误的。 我现在在做什么=
1)在谷歌电子表格中,按ctrl + F然后更多选项(三个点)=去查找和替换
2)在查找框中输入\ n并选择“使用正则表达式搜索”复选框,然后点击全部替换
3)它将取代不必要的换行符。 此Excel中的CSV文件为我工作。
非常感谢大家的宝贵建议。我现在将处理CSVparsers,OpenCSV等。 谢谢:))