如何在将内容粘贴到Excel文件时从字符串中删除回车符

时间:2009-10-23 11:24:30

标签: java excel carriage-return

将Java代码生成的内容(或文本)粘贴到excel时出现问题。 问题是我的Java代码生成一个包含多行的String,即包含换行符(\n)。当我尝试复制此内容并将其粘贴到Excel文件中时,我得到一个带方框符号的多行文本。我发现Windows使用\r\n进行换行而不只是\n。我尝试将\n替换为\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 时,我得到了方框。如何删除我的单元格中的多行的框?

5 个答案:

答案 0 :(得分:42)

你想要回车/换行吗,或者不是吗?你的标题说你没有,你的代码在字符串有换行符时显式添加回车符。如果你想摆脱两者,使用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的文档。

我怀疑“盒子”是其他角色,而不是返回或换行符。

答案 1 :(得分:0)

为什么不照常复制和粘贴,然后在Excel上进行搜索和替换?

答案 2 :(得分:0)

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

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

然后Excel中的Ctrl-V和3个单元格填充A1得到1,A2得到2,A3得到3.这意味着\ n和\ r \ n按Excel的预期处理。包含\ n和\ r \ n的Java字符串也可以正常工作。这让我相信Excel单元格设置。检查单元格是否格式化为文本。

除此之外,不知道,抱歉。

答案 3 :(得分:0)

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

由于\ r \ n光标移动到当前行的开头,因此Hello的“He”被“Hi”替换。

答案 4 :(得分:0)

试试这个=)

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