Office Open XML

扩展名 |
.docx, .docm |
---|---|
互联网媒体类型 | |
开发者 | 微软, Ecma, ISO/IEC |
首次发布 | 2006年12月7日 |
最新版本 | 第3版 2012年8月15日 |
格式类型 | 文件檔案格式 |
扩展自 | XML, DOC, WordProcessingML |
标准 | ECMA-376, ISO/IEC 29500 |
网站 | ECMA-376, ISO/IEC 29500-1:2012 |
扩展名 |
.pptx, .pptm |
---|---|
互联网媒体类型 | |
开发者 | 微软, Ecma, ISO/IEC |
首次发布 | 2006年12月7日 |
最新版本 | 第3版 2011年6月29日 |
格式类型 | 簡報 |
扩展自 | XML, PPT |
标准 | ECMA-376, ISO/IEC 29500 |
网站 | ECMA-376, ISO/IEC 29500:2008 |
扩展名 |
.xlsx, .xlsm |
---|---|
互联网媒体类型 | |
开发者 | 微软, Ecma, ISO/IEC |
首次发布 | 2006年12月7日 |
最新版本 | 第三版 2011年6月29日 |
格式类型 | 电子试算表 |
扩展自 | XML, XLS, SpreadsheetML |
标准 | ECMA-376, ISO/IEC 29500 |
网站 | ECMA-376, ISO/IEC 29500:2008 |
Office Open XML(縮寫:Open XML、OpenXML或OOXML),為由Microsoft開發的一種以XML為基礎並以ZIP格式壓縮的電子文件規範,支持文件、表格、備忘錄、幻燈片等檔案格式。
OOXML在2006年12月成為了ECMA規範的一部分,編號為ECMA-376;並於2008年4月通過國際標準化組織的表決,在兩個月後公佈為ISO/IEC 29500國際標準。微軟推出這個格式,很多人認為是出於商業考量。[2]許多專家指出,該標準並不是個完整的標準,採用了許多微軟的獨有規格,使用上困難重重。[3][4]
从Microsoft Office 2007开始,Office Open XML文件格式已经成为Microsoft Office默认的文件格式。[5][6][7]Microsoft Office 2010支持对ECMA-376标准文档的读操作,ISO/IEC 29500 Transitional的读/写,ISO/IEC 29500 Strict的读取。[8]Microsoft Office 2013同时支持ISO/IEC 29500 Strict的读写操作。[9]
它的競爭對手是OpenDocument Format,後者是被廣泛接受的一種開放的文檔存儲和交換規範。
版本
存在以下几个版本的Office Open XML标准。
ECMA 376
ECMA 376,目前歷經4個版本,第1版(2006年12月)、第2版(2008年12月)、第3版(2011年6月)、第4版(2012年12月)。[10]
ISO/IEC 29500
ISO/IEC 29500目前最新的版本為2012年的版本 ISO/IEC标准的结构分为四部分。第1、2和3是独立的标准,第2部分用于其他文件格式,包括Design_Web_Format和XPS格式。第4部分作用是读出第1部分的变体。[11]
- 第1部分(基础知识和标记语言参考)
- 第2部分(解包约定)
- 第3部分(标记兼容性和可扩展性)
- 第4部分(过渡期迁移特性)
批評
微軟公司發表的Office Open XML使用許多非標準的規範,造成與其他辦公室軟體(如LibreOffice)讀取時發生不相容或內容偏移的情形,目的是讓Microsoft Office保持市場優勢。
ODF(廣泛接受的開放文檔規範)編碼時會使用其他標準規範(如ISO 639、MathML)來進行儲存,但OOXML使用非標準的編碼進行存取。例如 ODF 裡面的顏色代碼,不管是試算表、文件、簡報等,紅色的代碼都是 #FF0000,然而在OOXML裏隨不同產品,代碼分別為: Word:#FF0000, Excel:#FFFF0000, Powerpoint:#FF0000, 。
OOXML設計的目的是將微軟定義的 doc、ppt、xls 二進制格式轉成 XML 格式,並沒有依照 XML 的特性最佳化,而其私有格式內含的額外非標準元件也包含在內,例如 ActiveX 等等(過時,且容易用於攻擊);第二個原因是 比尔·盖茨 在 1998 年留下的備忘錄,提到「不能讓其他瀏覽器可完美顯示 MS Office 文件,只能讓自家公司的專屬 IE 可正確顯示」,現在的狀況可以說是微軟延續了比爾·蓋茲的精神,使「現代的 MS Office 存出的 OOXML 檔」刻意做成第三方軟體不能完善地解讀、呈現,顯示OOXML並非如其所聲稱的開放。[12]
Open XML Format SDK
Microsoft Open XML Format SDK[13]包含一套托管代码库用于编程以创建、操纵Office Open XML文件。
- 版本1.0发布于2008年6月10日。[14]配合Office Open XML规范的ISO/IEC标准化过程。[15]
- 版本2.0: 用于.NET 3.5应用程序。支持使用Office Open XML schema验证Office Open XML文档、在Office Open XML文档中搜索。
- 版本2.5: 用于.NET 4.0应用程序。发布于2014年6月[16]并在github上开源。[17]这是目前最高版本。支持Office 2013的一些新的类。该SDK建于System.IO.Packaging API之上,提供了强类型类。使用了.NET Framework Language-Integrated Query (LINQ)技术用强类型访问XML内容。把很多操作Open XML packages封装为API,以简化使用。
Open XML SDK 2.5 Productivity Tool for Microsoft Office提供许多特性,如给予文档内容产生Open XML SDK 2.5源代码,比较源与目标Open XML documents以产生源代码从源创建目标文档、验证文档、显示文档,ECMA376v1标准,Microsoft Office实现注解。
通常安装在 C:\Program Files (x86)\Open XML SDK\V2.5\
参考资料
- ^ 1.0 1.1 1.2 Microsoft. Register file extensions on third party servers. microsoft.com. [2009-09-04].
- ^ Linux基金会:微软推OOXML的理由很荒唐. 开发者在线. 2008-02-27.
- ^ 共创联盟报告指微软文档标准有20大问题. 腾讯科技. 2007-08-22.
- ^ OOXML: What's the big deal?. IBM developerWorks. 19 Feb 2008. (原始内容存档于2012-01-26).
- ^ Microsoft Expands List of Formats Supported in Microsoft Office. Microsoft. [2008-05-21]. (原始内容存档于2009-07-15).
- ^ Microsoft's future lies somewhere beyond the Vista by Evansville Courier & Press. Courierpress.com. [2009-05-19].
- ^ Rivals Set Their Sights on Microsoft Office: Can They Topple the Giant? - Knowledge@Wharton. Knowledge.wharton.upenn.edu. [2009-05-19].
- ^ Overview of the XML file formats in Office 2010
- ^ Doug Mahugh. Office’s Support for ISO/IEC 29500 Strict. MSDN blogs. [2011-02-18].
- ^ Standard ECMA-376. Ecma-international.org. [2009-05-19].
- ^ ISO search for "29500". International Organization for Standardization. 2009-06-05.
- ^ 微軟文書格式為何常跑掉?揭開 OOXML 格式大祕辛
- ^ Microsoft. Open XML Format SDK. Microsoft. 2008-06-10.
- ^ Erika Ehrli. Announcing the Open XML Format SDK 1.0. Computerworld. 2008-06-10.
- ^ Doug Mahugh. Open XML SDK roadmap. MSDN Blogs. [2008-03-23].
- ^ Welcome to the Open XML SDK 2.5 for Office. Microsoft. 2015-03-10 [2017-10-07].
- ^ Open-XML-SDK on github