Java 清除CSV文件中的回车

Java 清除CSV文件中的回车,java,excel,csv,return,Java,Excel,Csv,Return,对于我提出的问题,我已经看到了很多答案。我都试过了,没有一个对我有用。当我导出excel文件时,如果有回车符,它会将数据输入到新行中的下一列 我试图在列级别删除回车符,如下所示: String col = columnName.replaceAll("\r", ""); reportColumn.put( "column", col ); 这将遍历每个块并填充excel工作表。此外,我试图删除包含整个csv文件的字符串的回车符: String csv = "";

对于我提出的问题,我已经看到了很多答案。我都试过了,没有一个对我有用。当我导出excel文件时,如果有回车符,它会将数据输入到新行中的下一列

我试图在列级别删除回车符,如下所示:

String col = columnName.replaceAll("\r", "");
             reportColumn.put( "column", col ); 
这将遍历每个块并填充excel工作表。此外,我试图删除包含整个csv文件的字符串的回车符:

String csv = "";

CSVReportGenerator generator = new CSVReportGenerator( );
generator.setReportColumns( this.reportColumns );
generator.setReportRows( rows );
generator.setApplicationPath("");
generator.setNL('\n');
generator.setDebuggingON(Config.DEBUGGING_ON);
generator.produceReport( );
csv = generator.getCSV( );

csv.replaceAll(",,", "");
csv.replaceAll(".", "");
csv.replaceAll("\r", "");
csv.replaceAll("\n", "");
csv.replaceAll("\r\n", "");
csv.replaceAll("\\r\\n", "");
正如您所看到的,我尝试了几种不同的方法来删除回车,但都没有成功。谁能告诉我我做错了什么吗?

你可以试试

System.getPropertyline.separator


这样做的一个优点是它独立于平台。

重申您的问题:您有一个Excel文档,其中的单元格包含新行。您希望将此文档导出到CSV,而单元格中的新行正在损坏CSV文件

删除换行符 在将新行写入CSV时,您似乎已尝试从每个单元格中删除新行,但表示它似乎不起作用。在您提供的代码中,只替换\r字符,而不替换\n字符。我想试试这个:

String col=columnName.replaceAll[\r\n]; reportColumn.put column,col; 这将替换Windows上可能解释为换行符的所有两种类型的字符。实际上,换行符通常是两个字符加在一起\r\n

对于用于删除换行符的正则表达式,以下是详细说明:

,,//删除两个逗号,而不是换行符 . // 删除除换行符以外的所有字符 \r//删除Windows换行符一半的回车字符 \n//删除Windows换行符的一半 \r\n//删除Windows换行符,但不删除单个换行符 \\r\\n//与\r\n相同,但转义是由正则表达式库而不是java编译器处理的。 [\r\n]//应删除任何换行符。 [\\r\\n]//同上,但有额外的转义。 写转义新词 应该可以生成包含单元格内换行符的CSV文件。事实上,Excel本身可以做到这一点。这里有一个ExcelCSVPrinter java库,可以为您完成所有需要的转义:

这是一行excel格式的csv:

一号牢房,二号牢房的第一行 第二行,第二行,第三行
还提供了一个ExcelCSVParser Java库,用于读取类似的Excel CSV格式。

您是否查看了要操作的文件的十六进制转储?然后,您可能会找到新行字符,例如chr10和/或chr13