将内容粘贴到Excel文件时如何从string中删除回车

在将由Java代码生成的内容(或文本)粘贴到excel中时遇到问题。 问题是,我的Java代码生成一个多行的string,即包含换行符( \n )。 当我尝试复制这些内容并将其粘贴到一个Excel文件中时,我得到一个带方框符号的多行文字。 我开始知道Windows使用\r\n换行符,而不是\n 。 我尝试用\r\nreplace\r\n并粘贴生成的文本,但是我在Excel文件中获得了相同的方框。 这是我的示例代码:

  String myString = "a1\nb1"; String tmpString =myString.replace("\n","\r\n"); System.out.println( "Original = " +"\""+myString+"\""); System.out.println( "Result = " +"\""+tmpString+"\""); 

我用“”来包装文本。 当我试图在Excel中粘贴tmpstring时,我得到了方框。 我如何删除我的单元格中的多行框?

你想要回车/换行吗,还是不是? 你的标题说你不这样做,你的代码在string有换行符时显式地添加回车符。 如果你想摆脱这两个,使用String.replaceAll(),这需要一个正则expression式:

 public static void main(String[] argv) throws Exception { String s1 = "this\r\nis a test"; String s2 = s1.replaceAll("[\n\r]", ""); System.out.println(s2); } 

这个例子发现任何字符的出现,并删除它们。 您可能想要查找字符序列并用空格replace,但是我将把它留给您:查看java.util.regex.Pattern的文档。

我怀疑这个“盒子”是一些其他的字符,而不是一个返回或换行符。

为什么不像往常一样复制和粘贴,然后在Excel中进行search和replace?

如果有任何帮助,我运行这个代码行(C#)

 Clipboard.SetText("1\n2\r\n3"); 

然后用Excel中的Ctrl-V和填满A1的3个单元得到1,A2得到2和A3得到3.这意味着\ n和\ r \ n按照Excel的预期进行处理。 包含\ n和\ r \ n的Javastring也应该可以工作。 这导致我相信Excel单元格设置的东西。 检查单元格是否被格式化为文本。

除此之外,不知道,对不起。

 class Test { public static void main(String args[]) System.out.print("Hello\rHi"); } 

由于\ r光标移动到当前行的开始位置,所以Hello的“He”被replace为“Hi”。

试试这个=)

 String s1 = "this\r\nis a test"; String s2 = s1.replaceAll("(\\r|\\n)", ""); System.out.println(s2);