Question Excel insiste sur le formatage HTML


Je dois copier environ 15 000 lignes de données depuis une requête MS SQL vers une feuille de calcul Excel 2007. Certaines cellules contiennent du HTML en tant que texte brut et la plupart d'entre elles contiennent des tables HTML. Je veux que le HTML reste en texte brut dans Excel, les balises et tout; mais peu importe ce que je fais, Excel voit les balises et affiche la table, 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 code 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 conserver le HTML en texte brut parce que je l'ai géré une fois; Je ne me souviens pas comment. J'ai aussi vu d'autres questions de personnes ayant le problème inverse, donc la fonctionnalité existe certainement.

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

Modifier:

@variant: Coller dans le Bloc-notes et copier le texte à partir de là produit 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 sont délimitées par des tabulations et le code HTML contient des onglets d'indentation. Même si le formatage était supprimé, je pense que cela gâcherait les colonnes. Le texte contient également des virgules, alors l’économie en tant que fichier .csv n’aide pas non plus. (Je l'ai essayé)

@Jay: Voici un exemple du HTML, avec le texte non pertinent remplacé. Désolé pour le défilement horizontal - depuis cette est une question de formatage, j'ai pensé qu'il serait préférable de coller le texte tel quel. (Je connais le <li> les étiquettes ne sont pas fermées; Je ne suis pas concerné par la correction du code 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>

7
2018-05-18 15:21


origine


C'est un peu une manière de faire les choses en arrière, mais parfois il est utile de filtrer les choses via le bloc-notes (par exemple, coller pour supprimer les formats puis les copier à nouveau) avant de les déposer dans Excel. - variant
Pouvez-vous des exemples de texte que vous essayez de copier / coller sur 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 Mouse à sa question. - studiohack♦
Wayyy old mais peut être pertinent pour quelqu'un: Excel peut utiliser des requêtes SQL comme source de contenu de cellule. support.office.com/en-us/article/... - Zan Lynx


Réponses:


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


3
2018-05-20 17:02



Bugger moi, c'est un PITA pour juste un copier / coller! Je me gratte aussi la tête aujourd'hui, alors merci! - franglais


Vérifiez si vous avez des balises actives HTML. Clique le Bouton Microsoft Office > Options Excel > Vérification > Options de correction automatique > Étiquettes intelligentes. Décocher Incorporer les balises actives dans ce classeur. Enregistrez votre fichier et redémarrez Excel. Voir si cela aide.


0
2018-05-19 06:30



L'option "Incorporer les balises actives" est déjà désactivée. - Mouse


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 de cellules (dans le menu de droite) et, dans l'onglet Nombre, sélectionnez du 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 le formatage général, il colle deux cellules avec des valeurs de 1 et 2 Avec la mise en forme définie sur texte, il colle toute la chaîne de texte dans une seule cellule.


0
2018-05-20 05:28



J'aurais dû être plus clair au départ: je copie les données à partir de Microsoft SQL Server Management Studio, pas d'Excel, donc il n'y a pas d'options de formatage. Sur la base de votre suggestion, cependant, j'ai essayé de coller les données dans Excel, de mettre en forme les cellules sous forme de texte (pas de changement) et de copier et coller les nouvelles cellules 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 la table simple ci-dessus à partir d'un fichier texte, elle colle le code HTML brut. Si je sélectionne la cellule et que je fais une coupe ou une copie, puis que je colle, cela colle à nouveau le code HTML brut. Si j'ai sélectionné le texte dans la barre de formule et que je le copie, collez-le dans une cellule (même si j'ai modifié le format de cellule), il le colle comme deux cellules séparées avec les valeurs de cellule uniquement. - Jay Elston


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


0
2017-10-15 21:12