OfficeOpenXML
Office Open XML(縮寫:Open XML、OpenXML抑係OOXML), 為理由 Microsoft 開發个一種以 XML 做基礎並以 ZIP 格式壓縮个電子檔案規範,支援檔案、表格、備忘錄、幻燈片等檔案个格式。
OOXML 在二零零六年十二月成為咧 ECMA 規範个一部分,編號做 ECMA 兩百七十六;並在二零零八年四月通過國際標準化組織个表決,在兩隻月過後公佈為 ISO/IEC 二十九千五百个國際標準。微軟推出這个格式,異多人認為係出於商業考量。當多專家指出,該標準毋係一個完整个標準,用吔蓋多微軟个獨有規格,當困難。
從 Microsoft Office 二千空七開始,Office Open XML 檔案格式既經成為 Microsoft Office 按算愛進行个檔案格式。Microsoft Office 二千空一十支援對 ECMA 剪仔三百七十六標準文件个讀操作,ISO / IEC 二鰾九千五百 Transitional 个讀 / 寫,ISO / IEC 二鰾九千五百 Strict 个讀取。Microsoft Office 二千空一十三同時支援 ISO / IEC 二鰾九千五百 Strict 个讀寫操作。厥个競爭對手係 OpenDocument Format,後者係分人廣泛接受个一種開放个文件儲存摎交換規範。
版本
存在以下幾隻版本个 Office Open XML 標準。
ECMA 三百七十六
ECMA 三百七十六,目前經過四個版本,第一版(二零零六年十二月)、 第二版(二零零八年十二月)、 第三版(二零一一年六月)、 第四版(二零一二年十二月)。
ISO / IEC 二鰾九千五百
ISO / IEC 二十九千五百目前盡新个版本係二零一二年个版本 ISO / IEC 標準个結構分做四部分。第一、二摎三係獨立个標準,第二部分用在其他檔案个格式,包含 Design \ _ Web \ _ Format 摎 XPS 格式。第四部分作用係讀出第一部分个變體。
- 第一部分(基礎知識摎標記式語言參考)
- 第二部分(解包約定)
- 第三部分(標記相容性摎可延伸性)
- 第四部分(過渡期遷徙个特性)
批評
微軟公司發表个 Office Open XML 使用異多非標準个規範,造成撖其他辦公室个軟體(比將講 LibreOffice)讀取時發生無相容或者係內容偏移个情形,目的係愛分 Microsoft Office 保持市場優勢。
ODF ( 廣泛接受个開放文件規範 ) 編碼个時節會使用其他標準个規範 ( 像係 ISO 六百三十九、MathML ) 來進行儲存,毋過 OOXML 使用非標準个編碼來進行存取。比將講 ODF 裡背个色代碼,毋管係試算表、檔案、簡報這兜,紅色个代碼都係 # FF 零,毋過在 OOXML 裡肚無共樣个產品,代碼分別係:
- Word:# FF 零零
- Excel:# FFFF 零
- Powerpoint:# FF 零
OOXML 設計个目的係將微軟定義个 doc、ppt、xls 二進制格式轉做 XML 格式,並無依照 XML 个特性最佳化,其他私有格式內含个另外毋係標準元件也包含在內,比將講 ActiveX 等一下(過時,還過容易用在攻擊); 另外一方面,比爾 ・ 咚咚在一九九八年留下來个備忘錄提出到「做毋得分其他瀏覽器做得顯示到當好 MS Office 檔案,淨做得分自家公司个專屬 IE 做得正確顯示」,這下个狀況做得講係微軟延續咧比爾 ・ 咚咚个精神,使「現代个 MS Office 存出來个 OOXML 檔」刻意做成第三方軟體做毋得完善个解讀、呈現,顯示 OOXML 並毋係像佢所聲稱个開放。
Open XML Format SDK
Microsoft Open XML Format SDK 包含一套受控代碼庫用來做編程以建立、操縱 Office Open XML 檔案。毋使代理 Microsoft Office Object Model,乜毋提供檔案格式个頂層抽象。使用 Open XML SDK 定著愛理解文件个結構。著 Word 文件毋提供就像人个 layout 功能;著 Excel 文件,毋提供就像重新計算、 資料重新整理這兜功能過後。
- 版本一千五百空發布在二零零八年六月初十。配合 Office Open XML 規範个 ISO / IEC 標準化過程。
- 版本二蘸零:用於 . NET 三痕五應用程式。支援使用 . NET 个強型別類來直接表示 XML 个 element / attribute / value、使用 Office Open XML schema 驗證 Office Open XML 文件、在 Office Open XML 文件當中搜尋。該 SDK 建於 System . IO . Packaging API 之上。用吔 . NET Framework Language-Integrated Query ( LINQ ) 技術用強型別。摎當多个操作哦 Open XML packages 封裝做 API,來簡化使用。
- 版本二姣五:用於 . NET 四千五百空應用程式。發布在二零一四年六月並在 GitHub 上開源。這係目前最高个版本。支援 Office 二千空一十三个一息新个類。讀取ISO / IEC 二鰾九千五百 Strict Format 文件。
Open XML SDK 二姣五 Productivity Tool for Microsoft Office提供當多特性,假使分文件內容產生 Open XML SDK 二章五隻原始碼,較源摎目標 Open XML documents 以產生原始碼從源建立目標文件、驗證文件、明顯示文件,ECMA 三百七十六 v 一標準,Microsoft Office 實現註解。
一般安裝在 C : \ Program Files ( x 八十六 ) \ Open XML SDK \ V 二姣五 \。一個 Open XML 文件包含幾下隻文件部分(document part)。 ZIP 格式支援隨意存取各個部分。比將講,一個 slide 頁面、Word 文件肚項个 comment,都係獨立个文件。一個 Open XML 文件就係一個 Open Packaging Conventions ( OPC ) 包 ( package )。逐個文件部分有個部分名仔,由一系列segments 抑係一個 pathname 組成,像係 " / word / theme / theme 一 . xml "。包个 [Content \ _ Types] . xml 部分,用來確定包中所有个文件還有兜內容類型。
SpreadsheetML 文件
SpreadsheetML 文件包含 ` < workbook > ` 元素,其內部包含 ` < sheets > ` 摎 ` <sheet > ` 元素用來講各隻工作表。每一個工作表分人建立為一個獨立个 XML 檔案。一個 spreadsheet 文件還做得包含 ` < table > `、` < chartsheet > `、 ` < pivotTableDefinition > ` 這兜元素。
在安名空間 DocumentFormat . OpenXML . Spreadsheet 中定義了 spreadsheet中重要个 elements: