Umbrechen von Absätzen in Absatz-Tags in Microsoft Excel

643
George Reith

Ich verwende die Funktion Export als XML in Microsoft Excel. Ich habe eine XML-Schemadefinition wie folgt:

<?xml version="1.0"?>  <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="timeline"> <xs:complexType> <xs:sequence> <xs:element name="event" minOccurs="0" maxOccurs="unbounded"> <xs:complexType> <xs:all> <xs:element name="date" type="xs:string" minOccurs="1" /> <xs:element name="title" type="xs:string" minOccurs="1" /> <xs:element name="caption" type="xs:string" minOccurs="0" /> <xs:element name="image" type="xs:anyURI" minOccurs="0" /> </xs:all> </xs:complexType> </xs:element> </xs:sequence> <xs:attribute name="title" type="xs:string" use="required" /> <xs:attribute name="id" type="xs:string" use="required" /> <xs:attribute name="order" type="xs:int" /> <xs:attribute name="color" type="xs:hexBinary" /> </xs:complexType> </xs:element> </xs:schema> 

Mein Tisch sieht so aus:

 ╔══════╦════════════════════╦════════════════════════╦═══════════╦════════════════╗ ║ datetitlecaptionreferenceimage ║ ╚══════╩════════════════════╩════════════════════════╩═══════════╩════════════════╝ │ 1915 │ Alex's Birthday │ We ate cake. │ rcn_02 │ rcn/rcn_02.png │ │ │ │ │ │ │ │ │ │ He didn't like cake. │ │ │ ├──────┼────────────────────┼────────────────────────┼───────────┼────────────────┤ │ 1920 │ Alex starts school │ He didn't like school. │ rcn_03 │ rcn/rcn_03.png │ └──────┴────────────────────┴────────────────────────┴───────────┴────────────────┘ 
Was ich tun möchte, ist, Mutlilin-Zellen umzuwandeln und jeden Abschnitt in ein <p>Element zu verpacken . Also anstelle des Stromausgangs, der ist:

<event> <date>1915</date> <title>Alex's Birthday</title> <caption>We ate cake.  He didn't like cake.</caption> <image>rcn/rcn_02.png</image> </event> 

Ich möchte bekommen:

<event> <date>1915</date> <title>Alex's Birthday</title> <caption> <p>We ate cake.</p> <p>He didn't like cake.</p> </caption> <image>rcn/rcn_02.png</image> </event> 

Weiß jemand, wie dies möglich ist, ohne die Tags manuell in den Text einzufügen (ich habe viele hundert Zeilen)?

2
Ist das Problem beim Erfassen des Zeilenvorschubs und beim Analysieren in `

"? [Ist das eine Hilfe] (http://stackoverflow.com/questions/2986297/line-break-in-xml) Raystafarian vor 10 Jahren 0
@Raystafarian Ich könnte dies mit JavaScript tun. Es ist nur eine Verschwendung von Rechenleistung (und langsam), um es zur Laufzeit auszuführen, und ein weniger straffer Prozess, als wenn ich eine weitere Stufe im Build-Prozess hinzufügen möchte, um es zu booten. Idealerweise würde ich es gerne in der gleichen Phase tun, in der ich die Tabelle in XML konvertiere. Natürlich würde ich meiner XSD eine ap-Elementdefinition hinzufügen George Reith vor 10 Jahren 0
Ja, ich habe noch nie eine XML-Map wie diese verwendet. Ich dachte, die Tagging-Struktur wäre vielleicht ähnlich wie bei Excel. Raystafarian vor 10 Jahren 0
Ist es möglich, einen Download-Link zu einem Beispiel zu erhalten? SgtOJ vor 10 Jahren 0

1 Antwort auf die Frage

0
James Brewer

Leider scheint es nicht möglich zu sein, Tags mit dem XML-Exporter zu analysieren und einzufügen. Das Hinzufügen von Absatz-Tags um jede Beschriftungszelle wäre eine einfache Aufgabe, aber das Einfügen von Absatz-Tags in die Mitte des Zellinhalts scheint nicht etwas zu sein, was die XML-Exportfunktion allein ausführen kann. Es gibt jedoch andere Problemumgehungen für Ihren Datensatz, sofern nur die Spalte "Bildunterschrift" die Absatz-Tags erfordert.

Wenn Sie einen Texteditor verwenden, der Such- und Ersetzungsoperationen für Wagenrücklauf und Registereinrückungen (Notepad ++, TextWrangler, BBEdit, Microsoft Word) ausführen kann, kopieren Sie die gesamte Spalte in ein neues leeres Dokument. Platzieren Sie einen leeren Wagenrücklauf am Anfang und am Ende Ihres Datensatzes. Mit den folgenden Such- und Ersetzungskriterien konnte ich Ihren Beispieltext anpassen:

Suchen: \n\nErsetzen: </p><p>
Suchen: \n Ersetzen:</p>\n<p>

Sie nehmen dann den neu formatierten Text und fügen ihn wieder in Ihre Tabelle ein. Die Spalte sollte sich dann wie folgt verwandeln: ╦════════════════════════╦ ║ caption ║ ╩════════════════════════╩ │ We ate cake. │ │ │ │ He didn't like cake. │ ┼────────────────────────┼ │ He didn't like school. │ ┴────────────────────────┴


Um so auszusehen: ╦═══════════════════════════════════════════════════╦ ║ caption ║ ╩═══════════════════════════════════════════════════╩ │ <p>"We ate cake.</p><p>He didn't like cake."</p> │ ┼───────────────────────────────────────────────────┼ │ <p>He didn't like school.</p> │ ┴───────────────────────────────────────────────────┴