ClosedXML

C#

C# から Excelのデータを 参照したい。

Office が インストールされている Windows上 ならば COMインタフェース が一般的だが、今回は Officeが インストールされていない環境で の操作。

調べると、「Open XML SDK」と「ClosedXML」の2つが 一般的みたい。

Open XML SDKClosedXML
開発元Microsoftサードパーティー
対象ファイルWord/Excel/PowerPointExcel
プラットフォーム.Net Framework 3.5~
.Net Standard 1.0~
.Net Framework 4.0~
.Net Standard 2.0~
ファイルの作成/編集
Excelの数式計算×
オープンソース
インストールNuGetNuGet
コーディング煩雑簡潔

どちらも、XML形式のドキュメントを対象にしているので、Excel2007からのデータ形式( xlsx, xlsm )が対象になる。

今回は ClosedXML を 使ってみたので 覚書。

C# への ClosedXML の組込みと動作確認

開発環境は :Microsoft Visual Studio Community 2019

テスト用のプロジェクトを作成して

「ツール」→「ツール」→「NuGet パッケージマネージャー」→「ソリューションの NuGet パッケージの管理」を選択

検索先を「参照」にして「検索ボックス」に「ClosedXML」と入力

対処のプロジェクトに チェックを入れて 「インストール」をクリック

「ソリューションの変更の確認」と 「ライセンスの同意」 をして プロジェクトへの組み込みは完了

using ClosedXML.Excel;


private string ReadCell()
{
    String filepath = @"D:\temp\test.xlsx";

    var wb = new XLWorkbook(filepath);
    var ws = wb.Worksheets.Worksheet("sheet1");  //シート名
    return ws.Cell("A1").Value.ToString();       //セル番地
}
private void WriteCell(String txt)
{
    String filepath = @"D:\temp\test.xlsx";

    var wb = new XLWorkbook(filepath);
    var ws = wb.Worksheets.Worksheet(1);  //シート番号
    ws.Cell(1,1).Value = txt;             //セルを行列指定
    wb.Save();                            //上書き保存
}

取りあえず 動いた (´・ω・`)

参:https://github.com/closedxml/closedxml/wiki

タイトルとURLをコピーしました