24

ClosedXML、EPPlus、または SpreadsheetLight のいずれかを選択しようとしています。他のものよりも 1 つを選ぶ理由は何だと思いますか?

4

3 に答える 3

64

この 1 週間、EPPlus、ClosedXML、および SpreadsheetLight を評価してきました。3 つすべてが非常に複雑な OpenXML を簡単に操作できる、非常に優れたライブラリです。次の理由から、EPPlus を使用することにしました。

  • 最初は、ClosedXML を使用するつもりでした。優れたドキュメントがあり、オブジェクト構造は私にとって非常に理にかなっています。ただし、グラフ作成の要件がいくつかありますが、現時点では、ClosedXML にはグラフ作成機能がありません。

  • 次に、優れたドキュメントがあり、いくつかのチャートをサポートしている SpreadsheetLight に出くわしました。また、著者の姿勢と製品に対するこだわりも気に入っています。ただし、このプロジェクトは OpenXML 2.5 SDK ではなく、OpenXML 2.0 SDK の上に構築されています。これは、ライブラリが私のニーズを完全に満たしていない場合に OpenXML を直接操作できる柔軟性を持ちたいため、私にとって大きな問題です。私のプロジェクトは Excel 2013 をターゲットにしているので、最新の SDK を使用したいと考えています。 ...アップデート!追加情報については、以下の ErrCode のコメントを参照してください...

  • 最後に、適切なドキュメントがあり、グラフ作成をサポートする EPPlus に出会いました。他の 2 つよりもはるかに多くダウンロードされているため、他のユーザーが使用していることや、プロジェクトの周りでコミュニティが活発であることを知ることで、ある程度の安心感が得られます。また、現在、バージョン 4 のベータ 2 を使用しており、他の人が言っていることから有望に思えます。また、EPPlus のパフォーマンスが優れていること (他のバージョンが必ずしも悪いというわけではありません) の要点も把握しており、今後のバージョン 4 ではそれがさらに改善されているようです。


アップデート

EPPlus に含まれているもう 1 つの非常に便利な機能は、ワークシートのさまざまな部分の 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");
    }
于 2014-07-07T20:47:36.987 に答える
24

SpreadsheetLightであり、Open XML SDK で内部的に実行されます。MIT ライセンス。免責事項: 私は SpreadsheetLight を書きました。

于 2012-06-16T04:19:06.487 に答える
15

オープンソース: EPPlusを見たことがありますか?

スローガン: サーバー上で高度な Excel 2007/2010 スプレッドシートを作成します。

ライセンス: GNU Library General Public License (LGPL)。Polyform 非商用ライセンス 1.0.0

于 2012-05-08T15:23:48.030 に答える