C#から Microsoft Office のエクセルファイルを操作したい事は意外とあると思います。
ここではOpen XML SDK というライブラリを使ってエクセルファイルを操作してみます。
エクセルは複数のシートで構成されています。
エクセルからデータを取得したい編集したい時には、まずシートを特定する必要があります。
ワークシートの一覧を取得する方法について解説します。
使用するクラス
DocumentFormat.OpenXml.Packaging.SpreadsheetDocument クラス
SpreadsheetDocument クラスは Excel ファイル全体を管理するクラスです。
Openメソッドを使って指定のファイルを開きましょう。
DocumentFormat.OpenXml.Sheets クラス
Sheets クラスは Excel ファイルの中にある複数のシートに関する情報を管理するクラスです。
各シートの情報を管理する Sheet クラスをまとめるクラスです。
DocumentFormat.OpenXml.Sheet クラス
シート情報を管理するクラスです。
シートの名称やIDなどを管理しています。
ワークシートの一覧を取得
以下のサンプルではエクセルファイル内のシートの名称とIDをコンソールへ書き出しています。
using System; using System.Data; using DocumentFormat.OpenXml; using DocumentFormat.OpenXml.Packaging; using DocumentFormat.OpenXml.Spreadsheet; namespace ConsoleApplication1 { class Program { static void Main() { var fileName = @"c:\myspace\test.xlsx"; using (SpreadsheetDocument document = SpreadsheetDocument.Open(fileName, true)) { Sheets sheets = document.WorkbookPart.Workbook.Sheets; foreach (Sheet sheet in sheets.Elements<Sheet>()) { System.Console.Write("ID=" + sheet.Id); System.Console.Write(",NAME=" + sheet.Name); System.Console.WriteLine(); } } } } }
シートの一覧は Sheets オブジェクトで管理されています。
SpreadsheetDocument オブジェクトの WorkbookPart プロパティの Workbook プロパティから、 Sheets プロパティを取得する事ができます。
コメントをお書きください