Структура документа SpreadsheetML
Структура SpreadsheetML
документа состоит из <workbook/>
элемента, содержащего <sheets/>
элементы и <sheet/>
ссылающиеся на листы в книге. Для каждого листа создается отдельный XML-файл. Это минимальные обязательные элементы для допустимого документа электронной таблицы. Кроме того, документ электронной таблицы может содержать <table/>
, <chartsheet/>
, <pivotTableDefinition/>
или другие элементы, связанные с электронной таблицей.
Примечание.
Хотите создавать решения, которые расширяют возможности Office на разнообразных платформах? Ознакомьтесь с новой моделью надстроек Office. Надстройки Office занимают меньше места по сравнению с надстройками и решениями VSTO, и вы можете создавать их, используя практически любую технологию веб-программирования, например HTML5, JavaScript, CSS3 и XML.
Важные части электронных таблиц
С помощью пакета SDK Open XML для Office можно создать структуру документа и содержимое, в котором используются строго типизированные классы, соответствующие SpreadsheetML
элементам. Эти классы можно найти в DocumentFormat.OpenXML.Spreadsheet
пространстве имен. В следующей таблице перечислены имена классов, соответствующие некоторым важным элементам электронной таблицы.
Часть пакета | Элемент SpreadsheetML верхнего уровня | Класс пакета SDK Open XML | Описание |
---|---|---|---|
Книга | <workbook/> |
Workbook | Корневой элемент основной части документа. |
Лист | <worksheet/> |
Worksheet | Тип листа, представляющий таблицу ячеек, которая содержит текст, числа, даты и формулы. Дополнительные сведения см. в разделе Работа с листами. |
Лист диаграммы | <chartsheet/> |
Chartsheet | Лист, представляющий диаграмму, которая хранится в отдельном листе. Дополнительные сведения см. в разделе Работа с листами. |
Таблица | <table/> |
Table | Логическая конструкция, которая определяет диапазон данных, принадлежащий одному набору данных. Дополнительные сведения см. в статье Работа с таблицами SpreadsheetML. |
Сводная таблица | <pivotTableDefinition/> |
PivotTableDefinition | Логическая конструкция, отображающая объединенное представление данных в понятном формате. Дополнительные сведения см. в статье Working with PivotTables. |
Сводный кэш | <pivotCacheDefinition/> |
PivotCacheDefinition | Конструкция, определяющая источник данных в сводной таблице. Дополнительные сведения см. в статье Working with PivotTables. |
Записи сводного кэша | <pivotCacheRecords/> |
PivotCacheRecords | Кэш исходных данных сводной таблицы. Дополнительные сведения см. в разделе Working with PivotTables. |
Цепочка вычислений | <calcChain/> |
CalculationChain | Конструкция, указывающая порядок вычислений ячеек в книге в последний раз. Дополнительные сведения см. в разделе Работа с цепочкой вычислений. |
Общая строковая таблица | <sst/> |
SharedStringTable | Конструкция, которая содержит один экземпляр каждой уникальной строки во всех листах книги. Дополнительные сведения см. в разделе Работа с общей таблицей строк. |
Условное форматирование | <conditionalFormatting/> |
ConditionalFormatting | Конструкция, определяющая формат, который применяется к ячейке или последовательности ячеек. Дополнительные сведения см. в статье Работа с условным форматированием. |
Формулы | <f/> |
CellFormula | Конструкция, определяющая текст формулы для ячейки с формулой. Дополнительные сведения см. в разделе Работа с формулами. |
Простейший случай книги
В приведенном ниже тексте из стандарта ECMA-376 представлен простейший случай книги.
Самая маленькая (пустая) книга должна содержать следующие элементы:
один лист;
идентификатор листа;
идентификатор связи, указывающий на расположение определения листа.
© Ecma International: декабрь 2006 г.
Пример кода Open XML SDK
В этом примере кода классы в пакете SDK Open XML используются для создания минимальной пустой книги.
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);
}
}
Типичный случай книги
Типичная книга отличается от пустой книги с минимальной структурой. Она может содержать числа, текст, диаграммы, таблицы и сводные таблицы. Каждая из дополнительных частей размещена в ZIP-пакете электронной таблицы.
На следующем рисунке показаны основные элементы типичной электронной таблицы.
Рис. 2. Типичные элементы электронной таблицы