ECMA-376(Office Open XML)標(biāo)準(zhǔn)文件閱讀記錄(一)

前言

工作離不開Excel,最近更是又要對大量Excel表格進(jìn)行合并、匯總、計算、拆分等。把以前寫的代碼花了幾天改了改,雖然是解決了這些工作內(nèi)容,但總感覺這種解決方式不夠優(yōu)雅。想了想還是把ECMA-376標(biāo)準(zhǔn)文件拿出來讀一遍,根據(jù)標(biāo)準(zhǔn)文件來寫一個相對完善的底層庫,讓自己的代碼能夠勉強看得過去吧。

一、Office Open XML 簡介

Office Open XML (Open XML) 是一種國際認(rèn)可的文件格式標(biāo)準(zhǔn),Office 軟件套件實施這種標(biāo)準(zhǔn)來保存和交換信息。

Open XML 標(biāo)準(zhǔn)的主要目標(biāo)之一是可與編寫該標(biāo)準(zhǔn)時已存在的 Microsoft Office 文檔集完全兼容。

Open XML 為 Office 軟件實施者提供一個支持各種功能的標(biāo)準(zhǔn)。這些功能包括互操作性、存檔保護、擴展性、與現(xiàn)有 Microsoft Office 文檔的兼容性,等等。

Open XML 可提供廣泛支持。例如:Mac 產(chǎn)品 iWork,Linux 操作系統(tǒng)上來自 OpenOffice.org 的產(chǎn)品,Windows 操作系統(tǒng)上,Microsoft Offic等均能夠使用 Open XML 文件。

二、ECMA-376 標(biāo)準(zhǔn)

Open XML 格式由名為 ECMA(歐洲計算機廠家協(xié)會) 的標(biāo)準(zhǔn)組織定義。定義 Open XML 的特定文檔是 ECMA-376 標(biāo)準(zhǔn)。

另一個全球標(biāo)準(zhǔn)組織是國際標(biāo)準(zhǔn)化組織 (ISO),它也提供一項 Open XML 標(biāo)準(zhǔn),稱為 ISO/IEC 29500。

ECMA-376 標(biāo)準(zhǔn)的第 2 版與 ISO 29500 的 Strict 版本相同。

ECMA-376 標(biāo)準(zhǔn)用于指定 Open XML,它描述了創(chuàng)建、編輯和保存 Open XML 文件所需的要求。它提供有關(guān)構(gòu)成 Open XML 的標(biāo)記語言的信息。它說明用于 Open XML 文件的打包約定,并介紹了軟件供應(yīng)商可用于構(gòu)建該標(biāo)準(zhǔn)的自定義擴展的機制。ECMA-376 還介紹該標(biāo)準(zhǔn)的用于維護向后兼容性的功能。

三、Office 軟件商 Open XML 實現(xiàn)的樣子

我們使用WPS軟件新建一個XLSX格式的Excel電子表格文件,例如:“人員信息表.xlsx”,然后將拓展名由.xlsx修改為.zip,解壓后我們將看到以下文件結(jié)構(gòu):

_rels

---_rels.

docProps

---app.xml

---core.xml

---custom.xml

xl

---_rels

------workbook.xml.rels

---theme

------theme1.xml

---worksheets

------sheet1.xml

------sheet2.xml

------sheet3.xml

---sharedStrings.xml

---style.xml

---workbook.xml

我們打開xl文件夾中的worksheets文件夾,然后打開sheet1.xml,將看到以下內(nèi)容:

<?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" xmlns:xdr="http://schemas.openxmlformats.org/drawingml/2006/spreadsheetDrawing" xmlns:x14="http://schemas.microsoft.com/office/spreadsheetml/2009/9/main" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:etc="http://www.wps.cn/officeDocument/2017/etCustomData">
  <sheetPr/>
  <dimension ref="A1"/>
  <sheetViews>
    <sheetView tabSelected="1" workbookViewId="0">
      <selection activeCell="A1" sqref="A1"/>
    </sheetView>
  </sheetViews>
  <sheetFormatPr defaultColWidth="9" defaultRowHeight="13.5"/>
  <sheetData>
    <row r="1" spans="1:1">
      <c r="A1" 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"/>
  <pageSetup paperSize="9" orientation="portrait"/>
  <headerFooter/>
</worksheet>

四、最后

現(xiàn)在雖然我們已經(jīng)獲得了Office文件的Open XML文件,但是其中如[Content_Types.xml]等文件的含義,以及文件內(nèi)容中如row等標(biāo)簽,我們均不了解其代表的含義。接下來,我們就將開始閱讀ECMA-376(Office Open XML)標(biāo)準(zhǔn)文件,看看能不能通過標(biāo)準(zhǔn)文件將這些文件、標(biāo)簽等內(nèi)容的含義弄明白。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容