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 Id
parâmetros e SheetId
Name
. 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, Worksheet
e 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);
}
}