SpreadsheetML 文档的结构

SpreadsheetML 文档的文档结构由工作簿元素组成<,该元素>包含<>工作表和<引用工作簿中工作表的工作表>元素。 将为每张工作表创建单独的 XML 文件。 这些元素是有效电子表格文档所需的最小元素。 此外,电子表格文档可能包含 <>、 <图表表>、 <pivotTableDefinition> 或其他与电子表格相关的元素。

注意

有兴趣开发跨多个平台扩展 Office 体验的解决方案吗? 查看新的 Office 外接程序模型。 与VSTO外接程序和解决方案相比,Office外接程序占用的空间较小,您可以使用几乎任何Web编程技术(例如HTML5,JavaScript,CSS3和XML)来构建它们。


重要电子表格部分

使用 Open XML SDK for Office,可以创建使用与 SpreadsheetML 元素对应的强类型类的文档结构和内容。 可以在 DocumentFormat.OpenXML.Spreadsheet 命名空间中找到这些类。 下表列出了一些重要电子表格元素所对应类的类名称。

包部分 顶级 SpreadsheetML 元素 Open XML SDK 类 说明
工作簿 工作簿 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(该链接可能指向英文页面) 的以下文本介绍最小工作簿方案。

可能的最小(空白)工作簿必须包含以下内容:

一个工作表

工作表 ID

指向工作表定义的位置的关系 Id

? Ecma International: 2006 年 12 月。

Open XML SDK 代码示例

此代码示例使用 Open XML SDK 中的类创建最小空白工作簿。

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();
}

典型工作簿方案

典型工作簿不是空白的最小工作簿。 典型工作簿可能包含数字、文本、图表、表和数据透视表。 其中每个其他部分都包含在电子表格文档的 .zip 包中。

下图显示典型电子表格中可能包含的大多数元素。

图 2. 典型的电子表格元素

SpreadsheetML 文档的结构