Share via


Crear un documento de hoja de cálculo proporcionando un nombre de archivo

En este tema se muestra cómo usar las clases del SDK de Open XML para Office para crear mediante programación un documento de hoja de cálculo.


Creación de un objeto SpreadsheetDocument

En Open XML SDK, la clase SpreadsheetDocument representa un paquete de documentos de Excel. Para crear un documento de Excel, cree una instancia de la clase SpreadsheetDocument y rellénela con partes. Como mínimo, el documento debe tener una parte de libro que sirva como contenedor para el documento y una parte de hoja de cálculo. En el paquete, el texto se representa como XML mediante marcado SpreadsheetML.

Para crear la instancia de clase, llame al método Create(Package, SpreadsheetDocumentType) . Se proporcionan varios métodos Create, cada uno con una firma distinta. El código de ejemplo de este tema usa el método Create con una firma que requiere dos parámetros. El primer parámetro, package, toma una cadena de ruta de acceso completa que representa el documento que desea crear. El segundo parámetro, type, es miembro de la enumeración SpreadsheetDocumentType . Este parámetro representa el tipo de documento. Por ejemplo, hay distintos miembros de la enumeración SpreadsheetDocumentType para complementos, plantillas, libros, y plantillas y libros habilitados para macros.

Nota:

[!NOTA] Seleccione el SpreadsheetDocumentType correcto y compruebe que el archivo almacenado tenga la extensión de archivo correcta y adecuada. Si SpreadsheetDocumentType no coincide con la extensión de archivo, se produce un error al abrir el archivo en Excel.

En el siguiente ejemplo de código, se llama al método Create.

// Create a spreadsheet document by supplying the filepath.
// By default, AutoSave = true, Editable = true, and Type = xlsx.
SpreadsheetDocument spreadsheetDocument = SpreadsheetDocument.Create(filepath, SpreadsheetDocumentType.Workbook);

When you have created the Excel document package, you can add parts to it. To add the workbook part you call the AddWorkbookPart() method of the SpreadsheetDocument class.

// Add a WorkbookPart to the document.
WorkbookPart workbookPart = spreadsheetDocument.AddWorkbookPart();
workbookPart.Workbook = new Workbook();

A workbook part must have at least one worksheet. To add a worksheet, create a new Sheet. Al crear una nueva hoja, asocie la hoja con el libro pasando los parámetros Id, SheetId y Name . Use el método GetIdOfPart(OpenXmlPart) para obtener el identificador de la hoja. A continuación, agregue la nueva hoja a la colección Sheet llamando al método Append([]) de la clase Sheets .

Para crear la estructura básica del documento mediante el SDK de Open XML, cree una instancia de la clase Workbook , asígnela a la propiedad WorkbookPart del elemento de documento principal y, a continuación, agregue instancias de WorksheetPart, Worksheet y Sheet. The following code example creates a new worksheet, associates the worksheet, and appends the worksheet to the workbook.

// Add a WorksheetPart to the WorkbookPart.
WorksheetPart worksheetPart = workbookPart.AddNewPart<WorksheetPart>();
worksheetPart.Worksheet = new Worksheet(new SheetData());

// Add Sheets to the Workbook.
Sheets sheets = workbookPart.Workbook.AppendChild(new Sheets());

// Append a new worksheet and associate it with the workbook.
Sheet sheet = new Sheet() { Id = workbookPart.GetIdOfPart(worksheetPart), SheetId = 1, Name = "mySheet" };
sheets.Append(sheet);

Código de ejemplo

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

using DocumentFormat.OpenXml;
using DocumentFormat.OpenXml.Packaging;
using DocumentFormat.OpenXml.Spreadsheet;

static void CreateSpreadsheetWorkbook(string filepath)
{
    // Create a spreadsheet document by supplying the filepath.
    // By default, AutoSave = true, Editable = true, and Type = xlsx.
    SpreadsheetDocument spreadsheetDocument = SpreadsheetDocument.Create(filepath, SpreadsheetDocumentType.Workbook);

    // Add a WorkbookPart to the document.
    WorkbookPart workbookPart = spreadsheetDocument.AddWorkbookPart();
    workbookPart.Workbook = new Workbook();

    // Add a WorksheetPart to the WorkbookPart.
    WorksheetPart worksheetPart = workbookPart.AddNewPart<WorksheetPart>();
    worksheetPart.Worksheet = new Worksheet(new SheetData());

    // Add Sheets to the Workbook.
    Sheets sheets = workbookPart.Workbook.AppendChild(new Sheets());

    // Append a new worksheet and associate it with the workbook.
    Sheet sheet = new Sheet() { Id = workbookPart.GetIdOfPart(worksheetPart), SheetId = 1, Name = "mySheet" };
    sheets.Append(sheet);

    workbookPart.Workbook.Save();

    // Dispose the document.
    spreadsheetDocument.Dispose();
}

Consulte también