2009-10-23 69 views
9

将Java代码生成的内容(或文本)粘贴到Excel中时出现问题。 问题是我的Java代码生成一个包含多行的字符串,即包含换行符(\n)。当我尝试复制此内容并将其粘贴到Excel文件中时,我得到一个带方框符号的多行文字。我开始知道Windows使用\r\n作为换行符,而不仅仅是\n。我尝试用\r\n替换我的\n并粘贴生成的文本,但我在Excel文件中获得了相同的方框。下面是我的示例代码:如何在将内容粘贴到Excel文件时删除字符串的回车

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

我已经使用了“”换行的文本。当我试图在Excel中粘贴tmpstring时,我收到了方框。我怎样才能删除多行在我的手机

+0

对于像“ABC \ N12”,你在年底或每行后得到一个单一的盒子? – A9S6 2010-01-08 09:16:19

回答

41

你想要回车/换行吗,或者不是吗?你的标题说你没有,你的代码在字符串有换行符时明确添加回车符。如果你想摆脱的都有,使用String.replaceAll(),这需要一个正则表达式:

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); 
} 

这个例子找到的任何字符出现,并删除它们。您可能想要查找字符序列并用空格替换,但我会将其留给您:请参阅java.util.regex.Pattern的文档。

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

+0

感谢您的reply.when尝试由u发布的代码,它也删除我的文本中的多行,当我将其粘贴到excel中时,我不想这样做。当该框检查为字符时,该框返回ascii值10 – chaithu 2009-10-23 12:13:10

+1

+1 - 你只是对我有用的解决方案:)谢谢! – 2011-04-20 16:29:49

+0

应该是'[\ r \ n]': 'String s2 = s1。replaceAll(“[\ n \ r]”,“”);' – 2012-12-20 00:39:52

0

为什么不像往常一样复制和粘贴,然后在Excel中进行搜索和替换?

+0

我必须复制一个文本programmaticaly到剪贴板,然后将其粘贴到excel.Here我只提到一个示例代码。我不应该得到这些文本框时,我粘贴 – chaithu 2009-10-23 11:34:58

0

如果是任何帮助,我跑这行代码(C#)

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

和Excel和3个细胞,然后Ctrl-V得到了填充有A1得到1,A2得到2和A3得到3 。这意味着\ n和\ r \ n按照Excel的预期进行处理。包含\ n和\ r \ n的Java字符串也应该可以工作。这导致我相信Excel单元格设置有问题。检查单元格是否被格式化为文本。

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

+0

感谢您的回复 – chaithu 2009-10-23 12:14:36

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

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

0

试试这个=)

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