Насколько популярен Open XML?

Мне любопытно, сколько людей используют Open XML (OOXML) в наши дни (либо в чистом виде, либо через SDK) в закрытых и коммерческих средах. Я хорошо осведомлен о том, что происходит в «общедоступной сети» (MSDN, OpenXMLDeveloper.org и т. д.), но меня интересует опыт ТАКИХ людей, как хороший, так и плохой.

Большинство людей отказываются от VBA и VSTO в пользу работы напрямую с форматами OOXML? Какие преимущества вы получаете от OOXML, которые вы не получаете от объектной модели. Я хотел бы узнать больше о том, почему вы его используете, а почему нет, для чего вы его используете и т. д.

Я просто пытаюсь получить от сообщества представление об OOXML как о подходе к автоматизации документов или другим применениям. Я не нахожу форумы сообщества (этот или другие) невероятно активными с вопросами и пользователями (проверьте количество вопросов по тегу этого поста), поэтому мне интересно, не являюсь ли я одним из очень немногих, кто широко использует OOXML.


person Community    schedule 31.12.2009    source источник


Ответы (8)


Теперь, когда Microsoft Office 2007 (и особенно Excel) поддерживает Open XML, мне гораздо проще работать с ним, чем с Office Automation. Вот несколько основных причин этого:

  • Лучшая производительность;
  • Никаких проблем с IPC (например, кто-то оставил Excel открытым в диалоговом окне «Сохранить как», сбой);
  • Отсутствие зависимости от самого Office или каких-либо внешних компонентов;
  • Довольно легко писать расширения и запросы Linq на C#;
  • Может использоваться в серверных средах без каких-либо проблем или рисков.

Учитывая, что пользователи Office XP/2003 могут открывать файлы Office 2007 с помощью пакета обеспечения совместимости, я не вижу причин продолжать использовать старую автоматизацию или методы «OfficeML». Это требует некоторого обучения, но, возможно, это лучший вариант на сегодняшний день — он бесплатный, надежный и, что самое главное, это родной формат, используемый Office 2007 сегодня, и вам не нужны какие-либо глупые трюки, чтобы заставить его работать (например, присоединение типа содержимого XLS к HTML, как мы сделали для XL2003, и XL2007, жалующийся на неправильное расширение).

Я бы не сказал, что это полная замена VBA/VSTO — дело в том, что они обычно являются частью решения, требующего интеграции с самой средой Office. Использование OOXML обычно требует, чтобы вы написали вокруг него целое приложение. Но для простого импорта/экспорта, для которого, вероятно, использовалось 90% автоматизации в прошлом, определенно лучше всего использовать OOXML.

person Community    schedule 02.01.2010
comment
Одна проблема с Open XML заключается в том, что у вас все еще есть много пользователей, использующих Office 2003, и вы создаете документы с нуля (т. е. не используете Word или Excel). Я сталкивался с некоторыми проблемами, когда я создавал файл с Open XML SDK, и он нормально открывался в Office 2007, но когда кто-то пытался открыть его в Office 2003 с помощью пакета обеспечения совместимости, происходил сбой. Просто к сведению, чтобы протестировать обе версии Office, прежде чем выпускать документ. - person Adam Sheehan; 04.01.2010
comment
@Adam: Интересно, я никогда не получал сообщения об ошибке по этому поводу, но теперь я определенно буду тестировать его. - person Aaronaught; 04.01.2010
comment
Недавно я начал использовать OpenXML, и это намного быстрее, чем использование Interop. Однако одним недостатком, с которым я столкнулся, является выполнение макросов с помощью OpenXML. Так что, если вам нужно выполнить макросы на вашем листе Excel, вам определенно не повезло! - person QV1; 16.09.2014

Библиотеки, такие как Simple OOXML, также могут значительно облегчить обучение.

person Community    schedule 09.04.2010

Я много смотрел на эту технологию, я программирую на VBA, но она была слишком сложной для моих нужд. В его использовании есть несколько замечательных вещей, которые принесут пользу моему электронному обучению, например, Linq и XML, но планка для перехода от VBA к базовым форматам слишком высока, и у меня нет такой роскоши, как время и деньги. потребуются инвестиции в изучение форматов VS.Net и Open Office XML.

Но есть одна вещь, в которой, я думаю, это действительно поможет, — это добавление метатегов к контенту PowerPoint для LMS.

person Community    schedule 03.02.2010
comment
да, я так и подозревал. переход на .NET и другие новые технологии был большим скачком по сравнению с VBA. - person Todd Main; 04.02.2010

Мы используем Open XML SDK для экспорта в Excel. Я должен сказать, что это довольно медленно, поэтому нам пришлось самостоятельно выполнять кэширование (для общих строк). Библиотека — это всего лишь объектное представление формата Open XML. Иногда это может быть хорошо, иногда нет. Особенно, когда вам нужно очень хорошо знать стандарт Open XML, потому что SDK ничего не сделает за вас. Вы должны знать все ограничения, которые накладывает этот формат, вы должны знать, какие элементы вы не можете опустить в xlsx или docx и т. д. Это позволяет вам создавать непоследовательные электронные таблицы Excel или текстовые документы, что не очень хорошо. Ну хоть бесплатно :) Лучше чем ничего.

person Community    schedule 18.03.2013

Я использовал Open Xml SDK для создания документов в SharePoint, создания PPTX для пользовательских презентаций (вытягивание данных из XSLX) и для «создания» составных документов из нескольких сегментов документа.

Формат и SDK великолепны. Не беспокойтесь о сервере в сценариях ASP.NET или SharePoint и с высокой скоростью. Я не нашел слишком много сценариев, в которых SDK или xml «грубой силы» не могут достичь цели. Одним из примеров является защита паролем и DRM для документов, но это более крайние случаи. Я согласен с aaronaught в том, что это не эксклюзивное решение, а SharePoint, VSTO и другие инструменты в наборе инструментов для решения для генерации документов.

person Community    schedule 07.01.2010
comment
Интересно, поколение PPTX. Будет ли это сценарий, например, когда продавцу нужна специальная колода для конкретного клиента, а серверная часть использует SDK для запроса клиента и данных для вставки в предварительно созданный шаблон? - person Todd Main; 11.01.2010
comment
Окату. Я почти так и сделал. Наш клиент очень доволен результатом. Я также использовал Excel и Word для импорта и экспорта информации из нашей системы. - person Andrew; 06.02.2010
comment
Окату, у нас были ситуации с Word, очень похожие на то, что вы описываете (извлечение данных из SharePoint и других внешних систем) для создания документов DOCX. PPTX очень похож — создание пользовательских слайдов на основе данных из файла Excel. - person Pete Skelly; 16.02.2010

Я делаю сценарий, в котором показатели продаж для страны предоставляются в колоде PPT с использованием Open XML.

person Community    schedule 18.01.2010
comment
интересно. Вы используете SDK или пишете напрямую? Вы делаете более сложные отчеты BI, такие как диаграммы и графики? - person Todd Main; 19.01.2010
comment
SDK 2.0 Beta Но мне кажется, что пользоваться им неудобно. Я использую отражатель, который создает диаграммы с помощью пакета диаграмм SoftwareFx. Данные продаются, где отслеживается, как компания работает на 40 различных рынках, и мы изучаем ценности / объемы / процент / проникновение на рынок в различных сегментах / рост / долю роста, так что да, это BI, но с использованием Linq для SQL. - person salgo60; 19.01.2010
comment
Используется для принятия решений и мотивации решений о прекращении производства продуктов на разных рынках. - person salgo60; 20.01.2010

Я использовал его для анализа файлов pptx в поисках специальных комментариев в фигурах. Эти комментарии являются ссылками на другие ресурсы (чаще всего uri, PDF-файлы и т. д.). Затем я использую программное обеспечение DeepZoom для рендеринга pptx, а затем визуализирую uri внутри формы. Весело, но медленно. Используйте его, чтобы помочь с исследованиями и «новым» способом смотреть на плакаты. Но это не ЛОБ.

person Community    schedule 13.06.2013

Совсем недавно мы перешли с Word Interop на Open XML.

Наше приложение используется для создания счетов-фактур в формате Word и pdf. Когда использовался Interop, создание Invoice приличного размера занимало около 5-10 минут. Теперь, используя OpenXML и SSRS, это время сократилось примерно до 30 секунд. Единственная проблема с Word заключалась в том, что некоторые функции не были обратно совместимы с Word 2010 и Word 2007, и потребовалось некоторое время, чтобы исправить и запустить их. Например, создание оглавления, объединение документов и т. д.

Кроме этого, я думаю, что Linq, MSDN и блог Эрика Уайта достаточно, чтобы вы идет в правильном направлении.

person Community    schedule 11.08.2013