Обернуть абзацы в теги абзаца в Microsoft Excel

677
George Reith

Я использую функцию экспорта в формате XML в Microsoft Excel, у меня есть определение схемы XML, например, так:

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

Моя таблица выглядит так:

 ╔══════╦════════════════════╦════════════════════════╦═══════════╦════════════════╗ ║ 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 │ └──────┴────────────────────┴────────────────────────┴───────────┴────────────────┘ 
То, что я хочу сделать, это преобразовать мутлиновые клетки и обернуть каждый раздел в <p>элемент. Так что вместо токового выхода, который:

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

Я хочу получить:

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

Кто-нибудь знает, как это возможно без ручной вставки тегов в текст (у меня много сотен строк)?

2
Проблема с захватом перевода строки и его разбором в `

`? [Это поможет?] (Http://stackoverflow.com/questions/2986297/line-break-in-xml) Raystafarian 10 лет назад 0
@Raystafarian Я мог бы сделать это с помощью JavaScript. Это просто пустая трата вычислительной мощности (и медленная), чтобы сделать это во время выполнения и менее оптимизированный процесс, чем я хотел бы добавить еще один этап в процессе сборки для его начальной загрузки. В идеале я хотел бы сделать это на том же этапе, когда я конвертирую электронную таблицу в XML. Я бы, конечно, добавил определение элемента ap в мой XSD George Reith 10 лет назад 0
Да, я никогда не использовал такую ​​XML-карту, я подумал, что, возможно, структура тегов будет похожа на ту, что вы могли бы сделать в Excel. Raystafarian 10 лет назад 0
Можно ли получить ссылку для скачивания на пример? SgtOJ 10 лет назад 0

1 ответ на вопрос

0
James Brewer

К сожалению, не представляется возможным проанализировать и вставить теги, используя экспортер XML. Было бы простой задачей добавить теги абзаца вокруг каждой ячейки заголовка, но фактическая вставка тегов абзаца в середину содержимого ячейки не кажется чем-то, что функция экспорта XML может сделать сама по себе. Однако существуют и другие обходные пути для вашего набора данных, при условии, что для тегов абзаца требуются только столбцы «заголовок».

Используя текстовый редактор, способный выполнять операции поиска и замены для возврата каретки и отступов табуляции (Notepad ++, TextWrangler, BBEdit, Microsoft Word), вы бы скопировали весь столбец в новый пустой документ. Поместите пустой возврат каретки в начале и конце вашего набора данных. Используя следующий критерий поиска и замены, я смог изменить ваш пример текста так, чтобы он подходил:

Найти: \n\nзаменить: </p><p>
найти: \n заменить:</p>\n<p>

Затем вы берете новый форматированный текст и вставляете его обратно в электронную таблицу. После этого столбец должен выглядеть так: ╦════════════════════════╦ ║ caption ║ ╩════════════════════════╩ │ We ate cake. │ │ │ │ He didn't like cake. │ ┼────────────────────────┼ │ He didn't like school. │ ┴────────────────────────┴


Чтобы выглядеть так: ╦═══════════════════════════════════════════════════╦ ║ caption ║ ╩═══════════════════════════════════════════════════╩ │ <p>"We ate cake.</p><p>He didn't like cake."</p> │ ┼───────────────────────────────────────────────────┼ │ <p>He didn't like school.</p> │ ┴───────────────────────────────────────────────────┴