このトピックでは、Open XML SDK for Office のクラスを使用して、ドキュメントを Excel に読み込まずに、Microsoft Excel ブック内のワークシートの一覧をプログラムで取得する方法について説明します。 このタスクを示すメソッド GetAllWorksheets
例が含まれています。
GetAllWorksheets メソッド
次のコードに示す GetAllWorksheets
メソッドを使用して、ブック内のワークシートの一覧を取得できます。
GetAllWorksheets
メソッドは、1 つのパラメーター (調べるファイルのパスを示す文字列) を受け取ります。
Sheets? sheets = GetAllWorksheets(args[0]);
メソッドは指定したブックで動作し、 Sheets オブジェクトのインスタンスを返します。そこから、各 Sheet オブジェクトへの参照を取得できます。
GetAllWorksheets メソッドを呼び出す
GetAllWorksheets
メソッドを呼び出すには、次のコードに示すように、必要な値を渡します。
Sheets? sheets = GetAllWorksheets(args[0]);
if (sheets is not null)
{
foreach (Sheet sheet in sheets)
{
Console.WriteLine(sheet.Name);
}
}
コードの動作のしくみ
サンプル メソッド GetAllWorksheets
、ブックの Sheets
コレクションへの参照を含む変数を作成します。 処理の最後に、 メソッドは 変数を返します。この変数には、 Sheets
コレクションへの参照が含まれます。また、シートがない場合は null
/Nothing
されます (これは整形式のブックでは発生しません)。
Sheets? theSheets = null;
その後、コードはドキュメントを読み取り専用モードで開き、 WorkbookPartへの参照を取得することで続行されます。
using (SpreadsheetDocument document = SpreadsheetDocument.Open(fileName, false))
{
theSheets = document?.WorkbookPart?.Workbook.Sheets;
Workbook オブジェクトにアクセスするには、WorkbookPart
から Workbook プロパティの値を取得し、Workbook
の Sheets プロパティからSheets
オブジェクトへの参照を取得します。
Sheets
オブジェクトには、メソッドの戻り値を提供するSheet オブジェクトのコレクションが含まれています。
theSheets = document?.WorkbookPart?.Workbook.Sheets;
サンプル コード
C# と Visual Basic の完全な GetAllWorksheets
コード サンプルを次に示します。
static Sheets? GetAllWorksheets(string fileName)
{
Sheets? theSheets = null;
using (SpreadsheetDocument document = SpreadsheetDocument.Open(fileName, false))
{
theSheets = document?.WorkbookPart?.Workbook.Sheets;
}
return theSheets;
}