Como remover o retorno de carro a partir de corda, enquanto colando conteúdo de arquivo do Excel
-
06-07-2019 - |
Pergunta
Eu tenho um problema, enquanto colando meus conteúdos (ou texto) gerados pelo código Java em excel.
O problema é que o meu código Java gera uma cadeia com múltiplas linhas, isto é com intervalos de linha (\n
) incluídos. Quando tento copiar este conteúdo e colá-lo em um arquivo Excel, estou ficando um texto com várias linhas com um símbolo de caixa quadrada. Eu vim a saber que o Windows utiliza \r\n
para quebras de linha e não apenas \n
. Eu tentei substituir o meu \n
com \r\n
e cole o texto gerado, mas eu estou recebendo as mesmas caixas quadradas no meu arquivo Excel. Aqui está o meu código de exemplo:
String myString = "a1\nb1";
String tmpString =myString.replace("\n","\r\n");
System.out.println( "Original = " +"\""+myString+"\"");
System.out.println( "Result = " +"\""+tmpString+"\"");
Eu tenho usado o " " para quebrar o texto. Quando eu tentei colar tmpstring no Excel, eu tenho a caixa quadrado. Como posso remover as caixas com várias linhas em minha cela ?
Solução
Você quer o retorno de carro / nova linha, ou não é? Seu título diz que você não fizer isso, seu código está acrescentando explicitamente retornos de carro quando a corda tem uma nova linha. Se você quiser se livrar de ambos, usar String.replaceAll (), que leva um regex:
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);
}
Este exemplo encontra qualquer ocorrência dos personagens, e exclui-los. Você provavelmente vai querer olhar para a seqüência de caracteres e substituir por um espaço, mas vou deixar isso para você:. Olhar para o doc para java.util.regex.Pattern
E eu suspeito que a "caixa" é algum outro personagem, não um retorno ou nova linha.
Outras dicas
Por que você não copiar e colar como de costume, em seguida, fazer uma pesquisa e substituir no Excel?
Se for de alguma ajuda, eu corri esta linha de código (C #)
Clipboard.SetText("1\n2\r\n3");
e, em seguida, Ctrl-V em Excel e 3 células foi preenchido com A1 tem 1, A2 e A3 tem dois obteve 3. Isto significa que \ n e \ r \ n são tratados como esperado pelo Excel. cordas Java contendo \ n e \ r \ n deve funcionar tão bem. Isto leva-me a acreditar que algo está acontecendo com as configurações de células do Excel. Verifique se as células são formatadas como texto.
Além disso, nenhuma idéia, me desculpe.
class Test {
public static void main(String args[])
System.out.print("Hello\rHi");
}
Devido à \ r cursor move-se para iniciar da linha atual, tão "Ele" da Olá é substituído por "Hi".
Tente esta =)
String s1 = "this\r\nis a test";
String s2 = s1.replaceAll("(\\r|\\n)", "");
System.out.println(s2);