Estrutura de um documento SpreadsheetML
A estrutura do documento de um documento SpreadsheetML consiste no < elemento da pasta> de trabalho que contém <planilhas> e < elementos de planilha> que fazem referência às planilhas na pasta de trabalho. Um arquivo XML separado é criado para cada planilha. Esses elementos são os elementos mínimos necessários para um documento de planilha válido. Além disso, um documento de planilha pode conter <tabela>, <planilha>, <tabela dinâmicaTableDefinition> ou outros elementos relacionados à planilha.
Observação
Interessado em desenvolver soluções que ampliem a experiência do Office em várias plataformas? Confira o novo modelo de Suplementos do Office. Os suplementos do Office ocupam um pequeno espaço em comparação com os suplementos e as soluções do VSTO, e você pode criá-los usando quase qualquer tecnologia de programação da Web, como o HTML5, JavaScript, CSS3 e XML.
Partes importantes da planilha
Usando o SDK do Open XML para Office, você pode criar estrutura de documentos e conteúdo que usa classes fortemente tipdas que correspondem a elementos De planilha . Você pode encontrar essas classes no namespace DocumentFormat.OpenXML.Spreadsheet. A tabela a seguir lista os nomes de classe das classes que correspondem a alguns dos elementos importantes da planilha.
Parte do pacote | Elemento SpreadsheetML de nível superior | Classe SDK Open XML | Descrição |
---|---|---|---|
Pasta de Trabalho | pasta de trabalho | Pasta de trabalho | O elemento raiz para a parte do documento principal. |
Worksheet | planilha | Planilha | Um tipo de planilha que representa uma grade de células que contém texto, números, datas ou fórmulas. Para obter mais informações, consulte Trabalhar com planilhas. |
Planilha de Gráficos | Chartsheet | Chartsheet | Uma planilha que representa um gráfico armazenado como sua própria planilha. Para obter mais informações, consulte Trabalhar com planilhas. |
Table | table | Table | Um constructo lógico que especifica que um intervalo de dados pertence a um único conjunto de dados. Para obter mais informações, consulte Trabalhando com tabelas de PlanilhaML. |
Tabela Dinâmica | pivotTableDefinition | PivotTableDefinition | Um constructo lógico que exibe a exibição agregada de dados em um layout compreensível. Para obter mais informações, consulte Trabalhando com Tabelas Dinâmicas. |
Cache Dinâmico | pivotCacheDefinition | PivotCacheDefinition | Um build que define a origem dos dados na Tabela Dinâmica. Para obter mais informações, consulte Trabalhando com Tabelas Dinâmicas. |
Registros de cache dinâmico | pivotCacheRecords | PivotCacheRecords | Um cache dos dados de origem da Tabela Dinâmica. Para obter mais informações, consulte Trabalhando com Tabelas Dinâmicas. |
Cadeia de Cálculo | calcChain | CalculationChain | Um constructo que especifica a ordem em que as células na pasta de trabalho foram calculadas pela última vez. Para obter mais informações, consulte Trabalhar com a cadeia de cálculo. |
Tabela de cadeia de caracteres compartilhada | sst | SharedStringTable | Um build que contém uma ocorrência de cada cadeia de caracteres exclusiva que ocorre em todas as planilhas de uma pasta de trabalho. Para obter mais informações, consulte Trabalhar com a tabela de cadeia de caracteres compartilhada. |
Formatação condicional | condicionalFormatting | CondicionalFormatting | Um build que define um formato aplicado a uma célula ou série de células. Para obter mais informações, consulte Trabalhar com formatação condicional. |
Fórmulas | f | CellFormula | Um build que define o texto da fórmula para uma célula que contém uma fórmula. Para obter mais informações, consulte Trabalhar com fórmulas. |
Cenário mínimo de pasta de trabalho
O texto a seguir do Standard ECMA-376 apresenta o cenário mínimo da pasta de trabalho.
A menor pasta de trabalho possível (em branco) deve conter o seguinte:
Uma única planilha
Uma ID de planilha
Uma ID de relacionamento que aponta para o local da definição da planilha
© Ecma International: December 2006.
Abrir o exemplo de código do SDK XML
Este exemplo de código usa as classes no SDK Open XML para criar uma pasta de trabalho mínima em branco.
using DocumentFormat.OpenXml;
using DocumentFormat.OpenXml.Packaging;
using DocumentFormat.OpenXml.Spreadsheet;
CreateSpreadsheetWorkbook(args[0]);
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();
}
Cenário típico da pasta de trabalho
Uma pasta de trabalho típica não será uma pasta de trabalho mínima e em branco. Uma pasta de trabalho típica pode conter números, texto, gráficos, tabelas e tabelas dinâmicas. Cada uma dessas partes adicionais está contida no pacote .zip do documento de planilha.
A figura a seguir mostra a maioria dos elementos que você encontraria em uma planilha típica.
Figura 2. Elementos típicos da planilha