Библиотеки OpenXML (альтернативы ClosedXML)

Что представляют собой некоторые библиотеки, расширяющие OpenXML (или добавляя какой-то слой абстракции к OpenXML), подобный ClosedXML?

Я ищу коммерческий или бесплатный инструмент с версией не менее 1.0.

Спасибо заранее.

Ответ 1

Open-Source: вы просмотрели EPPlus?

Слоган: создайте на сервере расширенные таблицы Excel 2007/2010.

Лицензия: Общая публичная лицензия GNU (LGPL).

Ответ 2

На прошлой неделе я оценивал EPPlus, ClosedXML и SpreadsheetLight. Все три действительно отличные библиотеки, которые делают работу с чрезвычайно запутанным OpenXML легкой задачей. Я решил пойти с EPPlus по следующим причинам:

  • Первоначально я собирался пойти с ClosedXML. У него отличная документация, и структура объекта имеет для меня большой смысл. У меня есть некоторые требования к диаграммам, и на данный момент ClosedXML не имеет функций построения диаграмм.

  • Затем я наткнулся на SpreadsheetLight, который также имеет хорошие документы и поддерживает некоторые графики. Мне также нравится отношение автора и его приверженность его продукту. Тем не менее, проект построен на основе OpenXML 2.0 SDK, а не 2.5, что является для меня преградой, поскольку я хочу иметь возможность работать напрямую с OpenXML в том случае, если библиотека не вполне отвечает моим потребностям. Мой проект нацелен на Excel 2013, поэтому я хочу использовать последний SDK для работы....Обновить! Смотрите комментарий ErrCode ниже для дополнительной информации...

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


Обновить

Еще одна очень полезная функция, которую я нашел в составе EPPlus, - это то, как он предоставляет XML для различных частей рабочего листа. Если есть функция, которая не поддерживается EPPlus, вы все равно можете редактировать XML (в некоторых случаях), чтобы получить желаемый результат. Например, если у вас есть сводная диаграмма и вы хотите включить многоуровневые метки, вы можете сделать следующее:

    private void EnableMultiLevelLabels(ExcelChart chart)
    {   
        var element = chart.ChartXml.GetElementsByTagName("c:catAx")[0];
        if (element == null)
            return;

        var multiLevelLabelNode = element.AppendChildElementNode("c:noMultiLvlLbl");
        if (multiLevelLabelNode != null)
            multiLevelLabelNode.AppendNodeAttribute("val", "0");
    }

Ответ 3

SpreadsheetLight, и он выполняется внутри SDK Open XML. Лицензия MIT. Отказ от ответственности: я написал SpreadsheetLight.