Excel besteht darauf, HTML zu formatieren

8

Ich muss ungefähr 15.000 Datenzeilen aus einer MS SQL-Abfrage in eine Excel 2007-Tabelle kopieren. Einige der Zellen enthalten HTML als einfachen Text, und die meisten enthalten HTML-Tabellen. Ich möchte, dass der HTML-Code in Excel, Tags und allem einfach bleibt. Aber egal was ich mache, Excel sieht die Tags und rendert die Tabelle, was das Blatt völlig durcheinander bringt. Das Formatieren der Zellen als Text funktioniert nicht. Inhalte einfügen> Text funktioniert nicht. Das Kopieren des Textes der einzelnen Zelle, die HTML enthält, direkt in die Formelleiste funktioniert, aber das ist für 15.000 Zeilen keine wirklich praktikable Lösung.

Ich weiß, dass es möglich ist, HTML als einfachen Text beizubehalten, weil ich es einmal verwaltet habe. Ich erinnere mich einfach nicht wie. Ich habe auch andere Fragen von Leuten gesehen, die das gegenteilige Problem haben, so dass die Funktionalität definitiv existiert.

Ich bin unglaublich frustriert und würde mich sehr über Ihre Hilfe freuen.

Bearbeiten:

@variant: Das Einfügen in den Editor und das Kopieren des Texts von dort führt zu denselben Ergebnissen wie das direkte Kopieren der Abfrageergebnisse. Außerdem werden in Notepad eingefügte Daten durch Tabulatoren getrennt, und es gibt Einrückungsregisterkarten im HTML-Code. Selbst wenn die Formatierung entfernt würde, würde dies die Spalten durcheinander bringen. Der Text enthält auch Kommas, daher hilft das Speichern als CSV auch nicht. (Ich habe es versucht.)

@ Jay: Hier ist ein Beispiel für HTML, wobei irrelevanter Text ersetzt wird. Sorry über die horizontalen Scroll - da dies ist eine Formatierung Frage, dachte ich , es wäre am besten, um den Text einzufügen , wie sie ist. (Ich weiß, dass die <li>Tags nicht geschlossen sind. In diesem Fall geht es mir nicht darum, schlechtes HTML zu beheben.)

    <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>
Maus
quelle
Es ist ein bisschen rückwärts, Dinge zu tun, aber manchmal ist es nützlich, Dinge über den Editor zu filtern (dh einzufügen, um Formate zu entfernen und sie dann erneut von dort zu kopieren), bevor sie in Excel abgelegt werden.
Variante
Können Sie Beispiele für Text, den Sie kopieren / in diese Frage einfügen möchten? Ich habe Folgendes versucht: <html> <head> </ head> <body> <b> fett </ b> </ body> </ html> und konnte es von Zelle zu Zelle kopieren / einfügen.
Jay Elston
@ JayElston siehe Mouse's Update zu seiner Frage.
Studiohack
Wayyy alt, aber möglicherweise für jemanden relevant: Excel kann SQL-Abfragen als Quelle für Zelleninhalte verwenden. support.office.com/en-us/article/…
Zan Lynx

Antworten:

3

Was schließlich funktionierte, war das Umschreiben der SQL-Abfrage, um eine Pipe (|) zwischen allen Feldern hinzuzufügen (da die Pipe in keinem Text enthalten war), das Speichern der Ergebnisse in einer Textdatei und das Importieren dieser Daten als durch Pipe getrennte Daten. Formatieren jeder Spalte als Text im Importdialog.

Maus
quelle
Verpiss mich, das ist eine PITA zum Kopieren / Einfügen! Ich habe mir heute auch damit den Kopf gekratzt, also danke!
Franglais
0

Überprüfen Sie, ob Sie über HTML-Smart-Tags verfügen. Klicken Sie auf die Schaltfläche Microsoft Office > Excel-Optionen > Proofing > AutoKorrekturoptionen > Smart Tags . Deaktivieren Sie das Kontrollkästchen Smart Tags in diese Arbeitsmappe einbetten . Speichern Sie Ihre Datei und starten Sie Excel neu. Sehen Sie, ob dies hilft.

Ellesa
quelle
Die Option "Smart Tags einbetten" ist bereits deaktiviert.
Maus
0

Excel versucht hilfreich zu sein. Sie haben das Tabellen-Tag, daher wird davon ausgegangen, dass alle <td> -Werte Zellen sind.

Bevor Sie die Zellen kopieren, wählen Sie sie aus, führen Sie einen Vorgang zum Formatieren von Zellen (über das Menü mit der rechten Maustaste) aus und wählen Sie auf der Registerkarte Nummer den Text aus.

Ich habe es nicht an Ihrer Saite getestet, aber ich habe es an dieser Saite getestet:

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

Bei der allgemeinen Formatierung werden zwei Zellen mit den Werten 1 und 2 eingefügt. Bei der Formatierung auf Text wird die gesamte Textzeichenfolge in eine einzelne Zelle eingefügt.

Jay Elston
quelle
Ich hätte anfangs klarer sein sollen: Ich kopiere die Daten aus Microsoft SQL Server Management Studio, nicht aus Excel, daher gibt es keine Formatierungsoptionen. Auf Ihren Vorschlag hin habe ich jedoch versucht, die Daten in Excel einzufügen, die Zellen als Text zu formatieren (keine Änderung) und die neu formatierten Zellen zu kopieren und einzufügen. Immer noch nichts. Bearbeiten: @ Jay
Maus
@Mouse - Oh, ich hätte deine Frage genauer lesen sollen. Ich kann das Problem mit der Texteingabe duplizieren. Wenn ich die obige einfache Tabelle aus einer Textdatei einfüge, wird das rohe HTML eingefügt. Wenn ich die Zelle auswähle und entweder ausschneide oder kopiere und dann einfüge, wird das rohe HTML erneut eingefügt. Wenn ich den Text in der Formelleiste ausgewählt und kopiert und dann in eine Zelle eingefügt habe (auch in eine, in der ich das Zellenformat geändert habe), wird er als zwei separate Zellen mit nur den Zellenwerten eingefügt.
Jay Elston
0

Fügen Sie den Text zuerst in Ihren Texteditor ein. Ersetzen Sie alle durch "<" und ändern Sie sie in ein nicht verwendetes Zeichen (wie ^). Kopieren Sie den Text und fügen Sie ihn in Excel ein. In Excel können Sie alle ^ zurück in <ändern.

Rich Deem
quelle