[英]How to remove the carriage return from string while pasting content to Excel file
将Java代码生成的内容(或文本)粘贴到excel时出现问题。 问题是我的Java代码生成一个包含多行的String,即包含换行符( \\n
)。 当我尝试复制此内容并将其粘贴到Excel文件中时,我得到一个带方框符号的多行文本。 我开始知道Windows使用\\r\\n
进行换行而不仅仅是\\n
。 我试图用\\r\\n
替换我的\\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.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
的doc。
我怀疑“盒子”是其他角色,而不是返回或换行符。
为什么不照常复制和粘贴,然后在Excel上进行搜索和替换?
如果有任何帮助,我运行这行代码(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单元格设置。 检查单元格是否格式化为文本。
除此之外,不知道,对不起。
class Test {
public static void main(String args[])
System.out.print("Hello\rHi");
}
由于\\ r \\ n光标移动到当前行的开头,因此Hello的“He”被“Hi”替换。
试试这个=)
String s1 = "this\r\nis a test";
String s2 = s1.replaceAll("(\\r|\\n)", "");
System.out.println(s2);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.