SpreadsheetML - XLSX, XML

关于 SpreadsheetML

SpreadsheetML 是一系列基于 XML 的电子表格文档格式的名称。 SpreadsheetML有几个版本:

  1. SpreadsheetML 版本 2003 是在 Microsoft Word 2003 中引入的。SpreadsheetML 是 Microsoft 向开放文档格式迈出的重要一步。
  2. 办公室开放 XML (OOXML) 是 Microsoft Office 2007 应用程序中引入的基于 XML 的新格式。 Office Open XML 是多种基于 XML 的专用标记语言的容器格式。 SpreadsheetML version 2007是Microsoft Office Excel 2007用来存储其文档的标记语言。
  3. Microsoft Excel 2010 将文档存储在更新的 OOXML 标准中定义的 SpreadsheetML 版本 2010 中。

SpreadsheetML 在 Aspose.Cells

有 SpreadsheetML 的三个“版本”可用:

SpreadsheetML “版本” 适用标准/规范 支持 Aspose.Cells for .NET
Microsoft Excel 2003 Microsoft Excel 2003 XML 是的
Microsoft Excel 2007 OOXML ECMA-376 是的
Microsoft Excel 2010 OOXML ISO/IEC DIS 29500 是的
Microsoft Excel 2013 OOXML ISO/IEC DIS 29500 是的
OOXML SpreadsheetML 文档通常以 XLSX 文件的形式出现,它们是 ZIP 包。除了 XLSX. Aspose.Cells 还提供了对加载、保存和转换 SpreadsheetML 文档的广泛支持。这种包罗万象的实现是可能的,因为 Aspose.Cells 在设计时考虑到了 Microsoft Excel 文档的结构(并且 SpreadsheetML 以模仿 Microsoft Excel 文档的内部表示而闻名)。

OOXML 是开放的,为什么要使用 Aspose.Cells?

的确,Office Open XML 技术可以仅使用 XML 类来构建文档处理和生成应用程序,而无需依赖第三方库(例如 Aspose.Cells)。但是,我们坚信,当您拥有处理 OOXML 文档,而不是通过 XML 或其他库工作。

OOXML 规范长达数千页。开放和标准并不意味着简单。要正确处理或生成 OOXML 文档,必须投入精力学习这种格式。

除了使正确处理和生成有效文档变得更简单之外,Aspose.Cells 还提供了以下重要功能,这些功能在直接通过 XML 或其他第三方库处理 OOXML 文件时是不具备的:

  • 许多流行的 Excel 格式之间的质量转换,包括转换为 PDF、HTML、TIFF 和打印。
  • 能够从一个或多个文档的片段构建文档,同时通过风格格式、图表和图形自动合并数据。
  • 高级功能,例如从不同数据源(包括 Array、ArrayList、DataTable、DataColumn、DataGrid、DataView 和 DataReader)导入数据或导出数据以仅用一行代码填充 DataTable 或 Array。
  • 强大的公式计算引擎,支持几乎所有标准和高级 Microsoft Excel 函数。

考虑以下示例。一些单元格包含粗体文本“Hello World”。现在假设您需要编写一个程序来搜索工作表中的所有“Hello World”短语并将它们替换为“再见地球”。

Office Open XML 文档的片段

XML

 <?xml version="1.0" encoding="UTF-8" standalone="yes" ?>

\- <worksheet xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships">

  <dimension ref="A1:M184" />

\- <sheetViews>

\- <sheetView tabSelected="1" workbookViewId="0">

  <selection activeCell="H27" sqref="H27" />

  </sheetView>

  </sheetViews>

  <sheetFormatPr defaultRowHeight="15" />

\- <sheetData>

\- <row r="1" spans="1:7">

\- <c r="A1" s="1" t="s">

  <v>0</v>

  </c>

  </row>

\- <row r="11" spans="1:7">

\- <c r="D11" s="1" t="s">

  <v>0</v>

  </c>

  </row>

\- <row r="15" spans="1:7">

\- <c r="G15" s="1" t="s">

  <v>0</v>

  </c>

  </row>

\- <row r="21" spans="2:7">

\- <c r="G21" s="1" t="s">

  <v>0</v>

  </c>

  </row>

\- <row r="25" spans="2:7">

\- <c r="F25" s="1" t="s">

  <v>0</v>

  </c>

  </row>

\- <row r="31" spans="2:7">

\- <c r="B31" s="1" t="s">

  <v>0</v>

  </c>

  </row>

\- <row r="34" spans="6:13">

\- <c r="M34" s="1" t="s">

  <v>0</v>

  </c>

  </row>

\- <row r="38" spans="6:13">

\- <c r="F38" s="1" t="s">

  <v>0</v>

  </c>

  </row>

\- <row r="117" spans="8:8">

\- <c r="H117" s="1" t="s">

  <v>0</v>

  </c>

  </row>

\- <row r="184" spans="8:8">

\- <c r="H184" s="1" t="s">

  <v>0</v>

  </c>

  </row>

  </sheetData>

  <pageMargins left="0.7" right="0.7" top="0.75" bottom="0.75" header="0.3" footer="0.3" />

</worksheet>

在 Office Open XML 文档中实现即使是简单的查找和替换操作也很困难。我们的建议:记住开放和标准并不意味着简单,并使用 Aspose.Cells。