Compartir a través de


Recuperar una lista de las hojas de cálculo de un documento de hoja de cálculo

En este tema se muestra cómo usar las clases del SDK de Open XML para Office para recuperar mediante programación una lista de las hojas de cálculo de un libro de Microsoft Excel, sin cargar el documento en Excel. Contiene un método de ejemplo GetAllWorksheets para ilustrar esta tarea.


Método GetAllWorksheets

Puede usar el GetAllWorksheets método , que se muestra en el código siguiente, para recuperar una lista de las hojas de cálculo de un libro. El GetAllWorksheets método acepta un único parámetro, una cadena que indica la ruta de acceso del archivo que desea examinar.

Sheets? sheets = GetAllWorksheets(args[0]);

El método funciona con el libro que especifique, devolviendo una instancia del objeto, desde la Sheets que puede recuperar una referencia a cada Sheet objeto.


Llamar al método GetAllWorksheets

Para llamar al GetAllWorksheets método , pase el valor necesario, como se muestra en el código siguiente.

Sheets? sheets = GetAllWorksheets(args[0]);

if (sheets is not null)
{
    foreach (Sheet sheet in sheets)
    {
        Console.WriteLine(sheet.Name);
    }
}

Funcionamiento del código

El método de ejemplo, GetAllWorksheets, crea una variable que contendrá una referencia a la Sheets colección del libro. Al final de su trabajo, el método devuelve la variable , que contiene una referencia a la Sheets colección o null/Nothing si no había hojas (esto no puede ocurrir en un libro con formato correcto).

Sheets? theSheets = null;

A continuación, el código continúa abriendo el documento en modo de solo lectura y recuperando una referencia a WorkbookPart.

using (SpreadsheetDocument document = SpreadsheetDocument.Open(fileName, false))
{
    theSheets = document?.WorkbookPart?.Workbook.Sheets;

Para obtener acceso al Workbook objeto , el código recupera el valor de la Workbook propiedad de y WorkbookPart, a continuación, recupera una referencia al Sheets objeto de la Sheets propiedad de Workbook. El Sheets objeto contiene la colección de Sheet objetos que proporcionan el valor devuelto del método.

theSheets = document?.WorkbookPart?.Workbook.Sheets;

Código de ejemplo

A continuación se muestra el ejemplo de código completo GetAllWorksheets en C# y Visual Basic.

static Sheets? GetAllWorksheets(string fileName)
{
    Sheets? theSheets = null;

    using (SpreadsheetDocument document = SpreadsheetDocument.Open(fileName, false))
    {
        theSheets = document?.WorkbookPart?.Workbook.Sheets;
    }

    return theSheets;
}

Recursos adicionales