Excel insiste sur la mise en forme du HTML


9

J'ai besoin de copier environ 15 000 lignes de données d'une requête MS SQL vers une feuille de calcul Excel 2007. Certaines cellules contiennent du HTML en texte brut, et la plupart d'entre elles comprennent des tableaux HTML. Je veux que le HTML reste du texte brut dans Excel, les balises et tout; mais peu importe ce que je fais, Excel voit les balises et affiche le tableau, ce qui gâche complètement la feuille. Le formatage des cellules en tant que texte ne fonctionne pas. Collage spécial> Le texte ne fonctionne pas. Copier le texte de la cellule individuelle contenant du HTML directement dans la barre de formule fonctionne, mais ce n'est pas vraiment une solution réalisable pour 15 000 lignes.

Je sais qu'il est possible de garder HTML en texte brut car je l'ai géré une fois; Je ne me souviens juste pas comment. J'ai également vu d'autres questions de personnes ayant le problème opposé, donc la fonctionnalité existe définitivement.

Je suis incroyablement frustré et apprécierais profondément votre aide.

Éditer:

@variant: le collage dans le bloc-notes et la copie du texte à partir de celui-ci produisent les mêmes résultats que la copie directe des résultats de la requête. De plus, les données collées dans le Bloc-notes deviennent délimitées par des tabulations et il y a des onglets en retrait dans le HTML, donc même si cela supprimait la mise en forme, je penserais que cela gâcherait les colonnes. Le texte contient également des virgules, donc l'enregistrement au format .csv n'aide pas non plus. (Je l'ai essayé.)

@Jay: Voici un exemple de code HTML, avec du texte non pertinent remplacé. Désolé pour le défilement horizontal - puisqu'il s'agit d' une question de formatage, j'ai pensé qu'il serait préférable de coller le texte tel quel. (Je sais que les <li>balises ne sont pas fermées; je ne suis pas concerné par la correction du mauvais HTML dans ce cas.)

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

C'est un peu une façon de faire les choses en arrière, mais il est parfois utile de filtrer les choses via le bloc-notes (c'est-à-dire de les coller pour supprimer les formats puis de les recopier à partir de là) avant de les déposer dans Excel.
variante

Pouvez-vous des exemples de texte que vous essayez de copier / coller à cette question? J'ai essayé ceci: <html><head></head><body><b>bold</b></body> </html> et j'ai pu le copier / coller d'une cellule à l'autre.
Jay Elston

@JayElston voir la mise à jour de la souris à sa question.
studiohack

Wayyy old mais peut être pertinent pour quelqu'un: Excel peut utiliser des requêtes SQL comme source pour le contenu des cellules. support.office.com/en-us/article/…
Zan Lynx

Réponses:


3

Ce qui a finalement fonctionné a été de réécrire la requête SQL pour ajouter un canal (|) entre tous les champs (puisque le canal n'apparaissait dans aucun des textes), puis d'enregistrer les résultats dans un fichier texte et de l'importer en tant que données délimitées par des canaux, mettre en forme chaque colonne sous forme de texte dans la boîte de dialogue d'importation.


Encule-moi, c'est un PITA pour juste un copier / coller! Je me suis aussi gratté la tête avec ça aujourd'hui, alors merci!
franglais

0

Vérifiez si vous disposez de balises actives HTML. Cliquez sur le bouton Microsoft Office > Options Excel > Vérification > Options de correction automatique > Balises actives . Décochez Intégrer les balises actives dans ce classeur . Enregistrez votre fichier et redémarrez Excel. Voyez si cela aide.


L'option "Intégrer les balises actives" est déjà décochée.
Souris

0

Excel essaie d'être utile. Vous avez la balise table, donc elle suppose que toutes les valeurs <td> sont des cellules.

Avant de copier les cellules, sélectionnez-les, effectuez une opération de formatage des cellules (dans le menu droit de la souris) et dans l'onglet Nombre, sélectionnez le texte.

Je ne l'ai pas testé sur votre chaîne, mais je l'ai testé sur cette chaîne:

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

Avec un formatage général, il colle deux cellules avec des valeurs de 1 et 2 Avec un formatage défini sur texte, il colle la chaîne de texte entière dans une seule cellule.


J'aurais dû être plus clair au départ: je copie les données de Microsoft SQL Server Management Studio, pas d'Excel, il n'y a donc pas d'options de formatage. Sur la base de votre suggestion, cependant, j'ai essayé de coller les données dans Excel, de formater les cellules sous forme de texte (pas de changement), et de copier et coller les cellules nouvellement formatées. Toujours rien. Edit: @Jay
Mouse

@Mouse - Oh, j'aurais dû lire votre question plus attentivement. Je peux dupliquer le problème de saisie de texte. Lorsque je colle le tableau simple ci-dessus à partir d'un fichier texte, il colle le code HTML brut. Si je sélectionne la cellule et que je coupe ou copie puis colle, elle colle à nouveau le code HTML brut. Si j'ai sélectionné le texte dans la barre de formule et le copier, puis le coller dans une cellule (même celle dont j'ai changé le format de cellule), il le colle comme deux cellules distinctes avec les valeurs de cellule uniquement.
Jay Elston

0

Collez d'abord le texte dans votre éditeur de texte. Effectuez un remplacement pour "<" et remplacez-le par un caractère inutilisé (comme ^). Copiez le texte et collez-le dans Excel. Une fois dans Excel, vous pouvez remplacer tous les ^ par <.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.