【C#】C#プログラムでExcelを出力する
C#プログラムからExcelを出力する方法について少し調べたのでメモ
Microsoft.Office.Interop.Excelライブラリを使用する方法
→Excelをインストールしていないと使用できないのとオブジェクトの解放を意識する必要がある。
ClosdeXmlを使用する方法
→Microsoft Open XMLを使用したオープンソース。Excelのインストールは不要
今回はClosedXmlを使用してDynamicsのエンティティのリストをExcelを出力してみました。
public void ExportEntityList() { // エンティティメタデータ取得 var entityMetadatas = _crmsrv.GetAllEntityMetadata(); XLWorkbook workbook = new XLWorkbook(); IXLWorksheet ws = workbook.AddWorksheet("sample"); // エンティティの表示名と論理名をオブジェクトとして設定 ws.Cell(1, 1).Value = entityMetadatas .OrderBy(entity => entity.LogicalName) .Select(entityMetadata => new { DisplayName = (entityMetadata.DisplayName != null && entityMetadata.DisplayName.UserLocalizedLabel != null) ? entityMetadata.DisplayName.UserLocalizedLabel.Label + "(" + entityMetadata.LogicalName + ")" : entityMetadata.LogicalName, LogicalName = entityMetadata.LogicalName }).ToList(); workbook.SaveAs("sample.xlsx"); }
実行結果イメージは以下。オブジェクトのリストを渡すだけで簡単に一覧の出力が可能でした。
以上です。