Compartilhar via


Criar um documento de planilha fornecendo um nome de arquivo

Este tópico mostra como utilizar as classes no SDK Open XML para o Office para criar programaticamente um documento de folha de cálculo.


Criar um Objeto SpreadsheetDocument

No SDK Open XML, a SpreadsheetDocument classe representa um pacote de documentos do Excel. Para criar um documento do Excel, crie uma instância da classe e preencha-a SpreadsheetDocument com partes. No mínimo, o documento deve ter uma parte de pasta de trabalho que funcione como um contêiner para o documento e pelo menos uma parte de planilha. O texto é representado no pacote como XML com SpreadsheetML markup.

Para criar a instância de classe, chame o Create método . São fornecidos vários Create métodos, cada um com uma assinatura diferente. O código de exemplo neste tópico utiliza o Create método com uma assinatura que requer dois parâmetros. O primeiro parâmetro, package, utiliza uma cadeia de caminho completa que representa o documento que pretende criar. O segundo parâmetro, tipo, é um membro da SpreadsheetDocumentType enumeração. Esse parâmetro representa o tipo de documento. Por exemplo, existem diferentes membros da SpreadsheetDocumentType enumeração para suplementos, modelos, livros e modelos e livros com permissão para macros.

Observação

Selecione o adequado SpreadsheetDocumentType e certifique-se de que o ficheiro persistente tem a extensão de nome de ficheiro correta e correspondente. Se o SpreadsheetDocumentType não corresponder à extensão de nome de ficheiro, ocorrerá um erro ao abrir o ficheiro no Excel.

O seguinte exemplo de código chama o 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))

Quando tiver criado o pacote de documentos do Excel, você poderá adicionar partes a ele. Para adicionar a parte do livro, chama o AddWorkbookPart método da SpreadsheetDocument classe .

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

Uma parte da pasta de trabalho deve ter pelo menos uma planilha. Para adicionar uma folha de cálculo, crie um novo Sheet. Quando cria um novo Sheet, associe ao Sheet ao Workbook transmitir os Idparâmetros e SheetIdName . Utilize o GetIdOfPart método para obter o Id do Sheet. Em seguida, adicione a nova folha à Sheet coleção ao chamar o Append método da Sheets classe .

Para criar a estrutura básica do documento com o SDK Open XML, instanciar a Workbook classe, atribuí-la à WorkbookPart propriedade da main parte do documento e, em seguida, adicionar instâncias de WorksheetPart, Worksheete Sheet. O código de exemplo a seguir cria uma nova planilha, associa-a e acrescenta-a à pasta de trabalho.

// 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 exemplo

A seguir está o código de exemplo completo em C# e em 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);
    }
}

Confira também