Преобразование файлов Open XML Excel в HTML

Я разрабатываю решение для печати для MS Office 2007. Автоматизация делопроизводства мне не подходит, потому что для этого необходимо установить Office. Open XML Document Viewer - это решение для преобразования файлов Word (.docx) в формат HTML с помощью преобразования XSLT, но оно работает только для .docx. Можно ли использовать ту же технологию для файлов электронных таблиц Excel?


person necrostaz    schedule 03.03.2010    source источник
comment
Мы говорим об открытом стандарте сжатия (.xlsx) или форматах SpreadsheetML (.xml)?   -  person Ian    schedule 03.03.2010
comment
Конечно же, SpreadsheetML. Но (.xlsx) - это только упакованные XML-файлы SpreadsheetML с ресурсами. Мне нужно сгенерировать html из файлов xml с извлечением и связыванием ресурсов.   -  person necrostaz    schedule 03.03.2010
comment
@necrostaz: Я не верю, что XLSX - это просто повторно упакованный SpreadsheetML, я думаю, что они сильно отличаются от того, что я помню, когда смотрел на них.   -  person Ian    schedule 04.03.2010
comment
Хорошо, существует несколько версий SpreadsheetML, я имею в виду Open XML SpreadsheetML, указанный ECMA и используемый в Office 2007 и более поздних версиях. Он определяет файлы, ресурсы, отношения и т. Д., И все это упаковано в xlsx.   -  person necrostaz    schedule 04.03.2010
comment
некростаз прав. XSLX - это упакованная версия SpreadsheetML (и любых других ML в пакете, чаще всего DrawingML) в формате открытого документа.   -  person Todd Main    schedule 20.03.2010
comment
@necrostaz: просто хотел узнать, отвечает ли приведенный ниже ответ на ваш вопрос.   -  person Todd Main    schedule 22.03.2010


Ответы (3)


Вы можете использовать эту статью XSL-преобразование SpreadsheetML в HTML в качестве отправной точки для разработки собственного преобразования. . Чтобы получить некоторые идеи о том, что вам может понадобиться учесть при любом преобразовании вне OOXML. Следует иметь в виду, что SpreadsheetML более похож на PresentationML, чем на WordprocessingML в файловой структуре внутри пакета (т.е. для каждого листа существует отдельный файл).

Если вы делаете это из .NET, я бы сделал это из LINQ вместо XSLT. Я сделал преобразования из DrawingML в SVG, и Linq упрощает это (с точки зрения функциональности, аналогичной XSLT, пребывания в .NET и т. Д.)

person Todd Main    schedule 20.03.2010
comment
Спасибо за ваш ответ! Я уже работал над кодом open office и openxml-odf переводчиками, также я читал статью о XSL преобразовании SpreadsheetML в HTML, но я полагаю, что это не более эффективный способ. - person necrostaz; 23.03.2010

Если вы просматриваете файлы Excel 97-03 (xls) или Excel 2007 (xlsx), я бы рекомендовал FlexCel. Я использовал его, он очень хороший и, честно говоря, довольно дешевый по сравнению с конкурентами.

Обратите внимание, что он не полностью поддерживает все форматирование, присутствующее в Excel 2007, но я не думаю. Но у него есть встроенная функция для экспорта в HTML.

person Ian    schedule 03.03.2010
comment
Спасибо, но проприетарные или условно-бесплатные библиотеки мне не подходят :( - person necrostaz; 03.03.2010
comment
Вы можете указать это в исходном вопросе, так как это неясно. - person Ian; 04.03.2010

Вы могли бы написать парсер SpreadsheetML. Схема доступна в Интернете от Microsoft.

Некоторое время назад я написал один, который охватывал данные, структуру и базовое форматирование, чтобы бросить его в библиотеку и повторно сохранить как файл XLS. Это было не так уж сложно.

person Ian    schedule 04.03.2010
comment
Эта схема для Office 2002, но мне нужен OpenXml SpreadsheetML, схема которого сложна, поэтому мне нужно найти любые существующие решения :( - person necrostaz; 04.03.2010
comment
OpenXml и SpreadsheetML - это не одно и то же ... SpreadsheetML конкретно относится к формату XML, присутствующему в Office 2003 и более поздних версиях. Не файлы XLSX. Не объединяйте OpenXml и SpreadsheetML в одном предложении, если речь идет об одном элементе. - person Ian; 04.03.2010
comment
xslx = Расширения Excel для Office Open XML SpreadsheetML msdn.microsoft.com/en- us / library / dd922181.aspx и везде в открытом сообществе xml использовали термин SpreadsheetMl, но изначально он был определен для Office 2003. Для Office 2003 он имеет urn схемы: schemas-microsoft-com: office: spreadsheet, для XLSX - schemas.openxmlformats.org/spreadsheetml/2006/main - person necrostaz; 04.03.2010