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 プロパティを取得する事ができます。

コメント
コメントを投稿