Excel insiste em formatar HTML


9

Preciso copiar cerca de 15.000 linhas de dados de uma consulta MS SQL para uma planilha do Excel 2007. Algumas das células contêm HTML como texto sem formatação e a maioria inclui tabelas HTML. Eu quero que o HTML fique em texto sem formatação no Excel, tags e tudo; mas não importa o que eu faça, o Excel vê as tags e renderiza a tabela, o que atrapalha completamente a planilha. Formatar as células como texto não funciona. Colar Especial> Texto não funciona. Copiar o texto da célula individual que contém HTML diretamente na barra de fórmulas funciona, mas isso não é realmente uma solução viável para 15.000 linhas.

Eu sei que é possível manter o HTML como texto simples, porque eu o gerenciei uma vez; Eu simplesmente não lembro como. Também vi outras perguntas de pessoas com o problema oposto, portanto a funcionalidade definitivamente existe.

Estou incrivelmente frustrado e agradeceria profundamente sua ajuda.

Editar:

@ variant: colar no bloco de notas e copiar o texto de lá produz os mesmos resultados que copiar diretamente os resultados da consulta. Além disso, os dados colados no bloco de notas tornam-se delimitados por tabulações e existem tabulações recuadas no HTML; portanto, mesmo que elas se livrem da formatação, acho que isso estragaria as colunas. O texto também contém vírgulas, portanto, salvar como .csv também não ajuda. (Eu tentei.)

@ Jay: Aqui está um exemplo do HTML, com texto irrelevante substituído. Desculpe a rolagem horizontal - como essa é uma pergunta de formatação, achei melhor colar o texto como está. (Eu sei que as <li>tags não estão fechadas; nesse caso, não estou preocupado em corrigir HTML incorreto.)

    <center>  <table border="1" width="400" style="border: 1 solid #808080" cellpadding="2" cellspacing="0" bordercolor="#C0C0C0">      <tr align="center">      <td bordercolor="#800000" width="100%" height="14" style="background-color:#800000;"><font color="white">Header text</font></td>      </tr>      <tr>        <td width="100%" height="14">Paragraph of text</td>      </tr>      <tr align="center">        <td bordercolor="#800000" width="100%" height="14" style="background-color:#800000;"><font color="white">More text</font></td>      </tr>      <tr>        <td width="100%" height="14">  <ul><li>Bullet point   <li>Bullet point   <li>Bullet point   <li>Bullet point   <li>Bullet point   <li>Bullet point   <li>Bullet point</ul></td>      </tr>      <tr align="center">        <td bordercolor="#800000" width="100%" height="14" style="background-color:#800000;"><font color="white">More text</font></td>      </tr>      <tr>        <td width="100%" height="14">Some final text</td>      </tr>    </table>  </center>

É uma maneira um pouco atrasada de fazer as coisas, mas às vezes é útil filtrar as coisas via bloco de notas (ou seja, colar para retirar os formatos e copiá-los novamente a partir daí) antes de soltá-los no Excel.
variante

Você pode exemplos de texto que você está tentando copiar / colar para esta pergunta? Eu tentei o seguinte: <html><head></head><body><b> negrito </b></body> </html> e consegui copiar / colar de célula em célula.
Jay Elston

@ JayElston vê a atualização de Mouse para sua pergunta.
studiohack

Muito antigo, mas pode ser relevante para alguém: o Excel pode usar consultas SQL como fonte para o conteúdo da célula. support.office.com/en-us/article/...
Zan Lynx

Respostas:


3

O que funcionou foi reescrever a consulta SQL para adicionar um canal (|) entre todos os campos (já que o canal não apareceu em nenhum texto), salvar os resultados em um arquivo de texto e importá-los como dados delimitados por canal, formatar cada coluna como texto na caixa de diálogo de importação.


Merda, isso é uma PITA por apenas uma cópia / pasta! Estive coçando minha cabeça com isso também hoje, então obrigado!
Franglais

0

Verifique se você possui marcas inteligentes em HTML. Clique no botão Microsoft Office > Opções do Excel > Impermeabilização > Opções de AutoCorreção > Marcas Inteligentes . Desmarque a opção Incorporar marcas inteligentes nesta pasta de trabalho . Salve seu arquivo e reinicie o Excel. Veja se isso ajuda.


A opção "Incorporar marcas inteligentes" já está desmarcada.
Mouse

0

O Excel está tentando ser útil. Você tem a tag da tabela, portanto, assume que todos os valores <td> são células.

Antes de copiar as células, selecione-as, execute uma operação Formatar Células (no menu direito do mouse) e, na guia Número, selecione texto.

Eu não testei em sua string, mas testei nesta string:

<table><tr><td>1</td><td>2</td></tr></table>

Com formatação geral, cola duas células com valores de 1 e 2. Com a formatação definida como texto, cola toda a cadeia de texto em uma única célula.


Eu deveria ter sido mais claro inicialmente: estou copiando os dados do Microsoft SQL Server Management Studio, não do Excel, portanto, não há opções de formatação. Com base na sua sugestão, tentei colar os dados no Excel, formatar as células como texto (sem alteração) e copiar e colar as células recém-formatadas. Nada ainda. Edit: @Jay
Mouse

@ Mouse - Oh, eu deveria ter lido sua pergunta com mais cuidado. Eu posso duplicar o problema de entrada de texto. Quando colo a tabela simples acima de um arquivo de texto, ele cola o html bruto. Se eu selecionar a célula, recortar ou copiar e colar, ela colará novamente o html bruto. Se eu selecionar o texto na barra de fórmulas e copiá-lo, cole-o em uma célula (mesmo na qual alterei o formato da célula), ele será colado como duas células separadas, apenas com os valores das células.
Jay Elston

0

Cole o texto primeiro no seu editor de texto. Substitua todos por "<" e altere-o para algum caractere não utilizado (como ^). Copie o texto e cole-o no Excel. Uma vez no Excel, você pode alterar todos os ^ de volta para <.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.