Skip to main content

APIzation: Replication Package

[Q#1612808][A#1612912] How to remove the carriage return from string while pasting content to Excel file

https://stackoverflow.com/q/1612808

I have a problem while pasting my contents (or text) generated by Java code into excel. The problem is that my Java code generates a String with multiple lines, i.e. with line breaks (\n) included. When I try to copy this content and paste it into an Excel file, I am getting a multiline text with a square box symbol. I came to know that Windows uses \r\n for line breaks and not just \n. I tried to replace my \n with \r\n and paste the generated text, but I am getting the same square boxes in my Excel file. Here is my sample code: I have used the " " to wrap the text. When I tried to paste tmpstring in Excel, I got the square box. How can I remove the boxes with multiple lines in my cell?

Answer

https://stackoverflow.com/a/1612912

Do you want the carriage return / newline, or don't you? Your title says that you don't, your code is explicitly adding carriage returns when the string has a newline. If you want to get rid of both, use String.replaceAll(), which takes a regex: This example finds any occurrence of the characters, and deletes them. You probably want to look for the sequence of characters and replace with a space, but I'll leave that up to you: look at the doc for java.util.regex.Pattern. And I suspect that the "box" is some other character, not a return or newline.

APIzation

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);
}
package com.stackoverflow.api;

public class Human1612912 {

  public static String removeCarriageReturn(String s1) {
    String s2 = s1.replaceAll("[\n\r]", "");
    return s2;
  }
}

package com.stackoverflow.api;

/**
 * How to remove the carriage return from string while pasting content to Excel file
 *
 * @author APIzator
 * @see <a href="https://stackoverflow.com/a/1612912">https://stackoverflow.com/a/1612912</a>
 */
public class APIzator1612912 {

  public static String removeReturn(String s1) throws Exception {
    String s2 = s1.replaceAll("[\n\r]", "");
    return s2;
  }
}