工作离不开Excel,最近更是又要对大量Excel表格进行合并、汇总、计算、拆分等。把以前写的代码花了几天改了改,虽然是解决了这些工作内容,但总感觉这种解决方式不够优雅。想了想还是把ECMA-76标准文件拿出来读一遍,根据标准文件来写一个相对完善的底层库,让自己的代码能够勉强看得过去吧。
一、OfficeOpenXML简介OfficeOpenXML(OpenXML)是一种国际认可的文件格式标准,Office软件套件实施这种标准来保存和交换信息。
OpenXML标准的主要目标之一是可与编写该标准时已存在的MicrosoftOffice文档集完全兼容。
OpenXML为Office软件实施者提供一个支持各种功能的标准。这些功能包括互操作性、存档保护、扩展性、与现有MicrosoftOffice文档的兼容性,等等。
OpenXML可提供广泛支持。例如:Mac产品iWork,Linux操作系统上来自OpenOffice.org的产品,Windows操作系统上,MicrosoftOffic等均能够使用OpenXML文件。
二、ECMA-76标准OpenXML格式由名为ECMA(欧洲计算机厂家协会)的标准组织定义。定义OpenXML的特定文档是ECMA-76标准。
另一个全球标准组织是国际标准化组织(ISO),它也提供一项OpenXML标准,称为ISO/IEC。
ECMA-76标准的第2版与ISO的Strict版本相同。
ECMA-76标准用于指定OpenXML,它描述了创建、编辑和保存OpenXML文件所需的要求。它提供有关构成OpenXML的标记语言的信息。它说明用于OpenXML文件的打包约定,并介绍了软件供应商可用于构建该标准的自定义扩展的机制。ECMA-76还介绍该标准的用于维护向后兼容性的功能。
三、Office软件商OpenXML实现的样子我们使用WPS软件新建一个XLSX格式的Excel电子表格文件,例如:“人员信息表.xlsx”,然后将拓展名由.xlsx修改为.zip,解压后我们将看到以下文件结构:
_rels
---_rels.
docProps
---app.xml
---core.xml
---custom.xml
xl
---_rels
------workbook.xml.rels
---theme
------theme1.xml
---worksheets
------sheet1.xml
------sheet2.xml
------sheet.xml
---sharedStrings.xml
---style.xml
---workbook.xml
我们打开xl文件夹中的worksheets文件夹,然后打开sheet1.xml,将看到以下内容:
?xmlversion="1.0"encoding="UTF-8"standalone="yes"?worksheetxmlns="