Compartir a través de


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 el SDK de Open XML, la SpreadsheetDocument clase representa un paquete de documentos de Excel. Para crear un documento de Excel, cree una instancia de la SpreadsheetDocument clase 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. El texto se representa en el paquete como XML mediante SpreadsheetML marcado.

Para crear la instancia de clase, llame al Create método . Se proporcionan varios Create métodos, cada uno con una firma diferente. El código de ejemplo de este tema usa el Create método 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 un miembro de la SpreadsheetDocumentType enumeración. Este parámetro representa el tipo de documento. Por ejemplo, hay diferentes miembros de la SpreadsheetDocumentType enumeración para complementos, plantillas, libros y plantillas y libros habilitados para macros.

Nota:

Seleccione el adecuado SpreadsheetDocumentType y asegúrese de que el archivo guardado tiene la extensión de nombre de archivo correcta y coincidente. SpreadsheetDocumentType Si no coincide con la extensión de nombre de archivo, se produce un error al abrir el archivo en Excel.

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

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

When you have created the Excel document package, you can add parts to it. Para agregar la parte del libro, llame al AddWorkbookPart método de la SpreadsheetDocument clase .

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

A workbook part must have at least one worksheet. Para agregar una hoja de cálculo, cree una nueva Sheet. Al crear un nuevo Sheet, asocie Sheet con el Workbook pasando los Idparámetros y NameSheetId . Use el GetIdOfPart método para obtener el Id de Sheet. A continuación, agregue la nueva hoja a la Sheet colección llamando al Append método de la Sheets clase .

Para crear la estructura básica del documento mediante el SDK de Open XML, cree una instancia de la Workbook clase , asígnela a la WorkbookPart propiedad del elemento de documento principal y, a continuación, agregue instancias de WorksheetPart, Worksheety 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.

static void CreateSpreadsheetWorkbook(string filepath)
{
    // Create a spreadsheet document by supplying the filepath.
    // By default, AutoSave = true, Editable = true, and Type = xlsx.
    using (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);
    }
}

Recursos adicionales