C# で Excel ドキュメントを読み取ることができるライブラリを探していますが、セルの書式設定とスプレッドシートのデータを読み取ることができる必要があります。Excelドキュメントを読み取るためのさまざまな選択肢をリストしたこの便利な質問を見つけましたが、ここで提供される多くのソリューションでは、セルのプロパティ(フォント、背景色など)ではなく、スプレッドシートのコンテンツのみを読み取ることができます. しかし、私の特定の問題については、多くのセルの書式設定を含むドキュメントを読む必要があり、この書式設定情報を読み取ることができる必要があります。
読み取る必要がある Excel ドキュメントはxlsドキュメントであるため、この段階でxlsxを読み取る必要はありません。Excel がインストールされていないサーバーで使用できるライブラリを探しているので、スタンドアロン ソリューションであり、できればオープン ソースである必要があります。
xlsドキュメントからセルの書式設定情報を読み取った経験があり、このタスクの達成に役立つライブラリを提案できる人はいますか?
アップデート:
ClosedXml について読んだところ、必要な機能を提供しているように見えるため、ClosedXml の使用を検討しています。私はこのサンプルコードから作業しています:
Excel ドキュメントのコンテンツを問題なく読み取ることができました。このコードのカテゴリの例だけを使用しましたが、2 つのカテゴリ名のセルをフォーマットして背景色を設定しました。今、私が ClosedXml でやろうとしていることは次のとおりです。
塗りつぶしの背景色が特定のセルで定義されている場合
定義されている場合は、塗りつぶしの色を取得します(16 進数値で十分です)。
ここに私が使用しようとしたいくつかのコードがあります:
// Get all categories
while (!categoryRow.Cell(coCategoryId).IsEmpty())
{
IXLCell categoryName = categoryRow.Cell(coCategoryName);
try
{
categories.Add(categoryName.GetString() + " " + categoryName.Style.Fill.BackgroundColor.Color.ToHex());
}
catch
{
categories.Add(categoryName.GetString() + " None");
}
categoryRow = categoryRow.RowBelow();
}
しかし、コード
categoryName.Style.Fill.BackgroundColor.Color.ToHex()
常に「指定されたキーは辞書に存在しませんでした」という期待をスローします。、背景色が定義されているセルの場合でも。これを ClosedXml で動作させる方法を知っている人はいますか?