Como remover o retorno de carro a partir de corda, enquanto colando conteúdo de arquivo do Excel

StackOverflow https://stackoverflow.com/questions/1612808

  •  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 ?

Foi útil?

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);
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top