Как перейти из xhtml в excel в xhtml

У меня есть вопрос о том, как лучше всего получить xhtml в excel. позвольте пользователю отредактировать его в Excel, а затем вернуться к xhtml в конце.

Предыстория в том, что у меня есть веб-приложение, в котором тексты хранятся в xhtml. Их я могу экспортировать в файл excel с html в ячейке excel.

Я также могу повторно импортировать эту ячейку обратно в xhtml, но проблема заключается в том, что для редактирования ее очень сложно использовать для обычного пользователя, поскольку html - это просто текст в ячейке excel.

Является ли это неправильным подходом, и должен ли я просто использовать пользовательское приложение с несколькими HTML-редакторами, но пользователи предпочли бы документ Excel, которым они могут легко обмениваться и работать в автономном режиме.

Вот пример xml, но это может быть любой xhtml, который пользователь вводит в редакторе html (tinymce) со строгим xhtml. Я предполагаю, что для Excel нет плагина HTML-редактора. Я никогда не слышал об одном и не смог найти его, так как это было бы самым простым решением.

Обзор

* A Bullet: The impact of
* A bullet 2: Test text

Заголовок

* Bullet: text
* Bullet: Text

У кого-нибудь есть идеи? Спасибо, Крокед


person Crocked    schedule 12.01.2009    source источник


Ответы (6)


Если вы уже знакомы с XSLT, похоже, это лучший вариант. Хотя Excel 2003 не использует формат .xlsx, он читает (и сохраняет) то, что они называют «SpreadsheetML», что также является XML. Я обнаружил, что самый простой способ узнать, как выполнять преобразования в SpreadsheetML, — это просто открыть электронную таблицу в Excel, отформатировать ее, как вам нравится, а затем сохранить как-> Электронная таблица XML (*.xml). Откройте этот файл XML, и вы увидите все стили, определенные Excel для вашей книги, и затем вы можете использовать их в качестве «шаблона» для написания XSLT, который преобразует ваш XHTML в этот формат.

Для дальнейшего чтения и достойного пошагового руководства см. в SpreadsheetML">Познакомьтесь с SpreadsheetML (часть 1 из 2) в MSDN.

Предположительно, вы могли бы просто использовать другое преобразование XSL для извлечения необходимых данных из SpreadsheetML в XHTML.

person Matt Winckler    schedule 24.03.2009

Решение, которое я когда-то реализовал для личного использования, заключалось в том, что я написал макрос в Excel, который анализировал html-файл и заполнил лист Excel только данными. Когда я закончу, макрос прочитает данные на листе и сгенерирует html-файл.

Однако в моем случае был очень простой html-файл, и мне в основном приходилось анализировать только несколько тегов.

Однако вы можете найти решение / утилиту, которая облегчит вам это.

person Mostlyharmless    schedule 12.01.2009
comment
Хотя это сработало бы, если бы у меня была гарантированная структура xhtml, в этом случае я не могу контролировать то, что будет в xhtml (по крайней мере, в настоящее время), поскольку пользователь может изменить его по своему усмотрению. - person Crocked; 13.01.2009
comment
Анализ xhtml все еще может быть хорошей идеей, хотя я мог бы извлечь каждый тег как отдельную ячейку в Excel. Единственная проблема заключается в том, что если они повторно импортируют его, а исходная структура html изменилась (именно поэтому я хочу, чтобы шаг excel to xhtml) тем временем он, вероятно, не работал так, как хотелось бы. - person Crocked; 13.01.2009
comment
Может быть, я мог бы каким-то образом сохранить информацию о тегах в документе Excel - person Crocked; 13.01.2009
comment
Да, это становится экспоненциально сложным по мере увеличения количества обрабатываемых тегов. Что вы подразумеваете под сохранением информации тега в excel? - person Mostlyharmless; 13.01.2009

Не видя ваших конкретных документов, я могу выбрать только общее решение.

Если вы можете разбить документ по тегам, вы можете отобразить данные для конечного пользователя и сохранить информацию о тегах на скрытом рабочем листе. Итак, если у вас есть:

1-233

Вы можете показать 1, -2 и 33 в первых трех ячейках видимого рабочего листа и сохранить td, td style="color:red", td в соответствующих ячейках на невидимом листе. Затем вы сохраняете данные тега вне поля зрения, сводя к минимуму путаницу пользователей, и можете получить их, когда вам нужно сгенерировать файл xhtml.

person Yes - that Jake.    schedule 12.01.2009
comment
Ниже я добавил образец HTML, но конечный пользователь может ввести произвольную форму xhtml в редакторе. Хранение структуры на скрытом рабочем листе будет хорошо работать, если текст останется прежним, но если они хотят добавить новые строки или ячейки в текст, мне нужно как-то интерпретировать его, прежде чем сохранять его обратно. - person Crocked; 13.01.2009

Вот пример xml, но это может быть любой xhtml, который пользователь вводит в редакторе html (tinymce) со строгим xhtml. Я предполагаю, что для Excel нет плагина HTML-редактора. Я никогда не слышал об одном..

Review
  • Пуля: влияние
  • Пункт 2: Тестовый текст

Заголовок

  • Пуля: текст
  • Маркер: текст

person Crocked    schedule 12.01.2009
comment
вы должны обновлять свой вопрос или использовать комментарии к ответам, на которые вы отвечаете, а не использовать ответы, такие как форум - person Jeff Martin; 13.01.2009

не видя сложности документов, это может быть сложно, но как насчет XSLT? Сам excel, если это .xlsx, это xml. И в любом случае он будет экспортироваться в XML. Вы можете создать шаблон XSLT, который преобразует его в окончательный документ xhtml.

person Jeff Martin    schedule 12.01.2009
comment
К сожалению, я не могу использовать xlsx, так как я ограничен Office 2003. Я проделал довольно много работы с xslt, и, вероятно, он работал бы довольно хорошо, хотя с некоторой тонкой настройкой, если бы это был вариант. - person Crocked; 13.01.2009

Мое предложение состояло бы в том, чтобы сделать следующее:

xml, чтобы преуспеть в xml

Мое обоснование этого заключается в том, что

  1. Пользователь сможет открыть xml и фактически получить общее представление о документе (у xhtml есть бесполезные теги, которые им не нужны, такие как «html» или «head»), поскольку он понятен и прост.
  2. Excel может открывать файлы xml
  3. Вам легко написать макрос, который экспортирует данные Excel в XML (множество хороших средств чтения/записи xml)
  4. Вы можете определить шаблон xslt для этого xml-файла, который будет хорошо отображать его как html-документ.
  5. Я заметил ваш комментарий о том, что вы ограничены офисом 2003. Вы можете определить схему xslt, а затем, если она достаточно проста, firefox или iexplorer фактически отобразят ее для вас. Вы можете проверить поддержку браузера здесь: http://www.w3schools.com/xsl/xsl_browsers.asp
person Anton    schedule 15.01.2009