微軟在Office Open XML夾了多少私貨?

雖然Office Open XML在眾多反對聲和OpenDocument的抗議聲中成為國際標準,當然作為東家的微軟肯定不滿足啦,自家格式成為標準當然有機會在自家Microsoft Office夾帶私貨啦,雖然Office Open XML有規定數學公式標記語言,批註格式等,但是VBA那些你們懂得,還有多少東西是僅限Microsoft Office有的,其它辦公室軟體難以實現或者直接不支持的。就是用了這些專有技術的docx xlsx pptx


謝邀請。

這個問題很大,作為一個非業內人士,雖然我了解過一點 OOXML,但遠遠不夠給出這個問題的完整答案來,所以這個回答躺在草稿箱多日,總覺得就這麼發出來還是不夠,可惜我暫時沒辦法再補充得更加完美了。

OOXML 的標準已經相當細緻的規定了各級標籤、結構、以及它們的關係,不論圖片還是 OLE,OOXML 中都找得到它們的具體描述。當然 OLE 的主要問題是,針對對象具體的操作,這個不歸 Office 管。VBA 也好,域也好,介面也都是充分暴露出來了,隨便你怎麼玩都行。

要說私貨,在標準中夾帶私貨那也已經不叫私貨了(嗯!那就該叫標準),所以只是從標準的層面來講,沒有。但是呢,這東西就跟 C/C++ 編譯器啊、JS 引擎啊的類似,標準只告訴你什麼是什麼,但不負責你如何實現。你可以說因為微軟 Office 中已經存在了實現這種功能的模塊,剛好把這些東西也放在了標準中,於是這個功能微軟可以做的很好但是別人可能做不好,但那也不叫私貨,——標準已經在那兒了,我的實現沒有開放,你可以自己想辦法實現一個嘛(雖然很可能你實現不出來)!

話雖如此,以我對 OOXML 有限的了解,卻不得不說一些標準之外的事實。事實上,OOXML 的標準放在這兒,仍然很難有人能夠將 OOXML 做的與 MS Office 完全兼容。OOXML 的標準不同於 pdf 標準,它沒有具體規定在我們遇到這樣的一個元素、它的屬性如何如何時,這個元素應該具體如何精確、精準的呈現在屏幕或者顯示在頁面,所以,即使是完全相同的文檔內容,在實現上的些微差別,就會使得渲染效果發生特別大的變化。所以雖然 OOXML 是開放的標準,WPS 也好 LibreOffice 也好,是的可以做到沒有困難的解析、存儲 OOXML 格式的文檔,但卻無法把渲染效果做的跟 MS Office 完全一致。甚至於對 MS Office 自身而言,不同版本、不同平台上的軟體對同一個文檔的渲染效果,也可能或多或少存在一些差異。

如果說 OOXML 已經公開的文檔格式標準,我們可以說微軟沒有夾帶多少私貨;但事實上,OOXML 已經不僅僅是文檔格式標準了,很多時候,我們默認 MS Office 的渲染效果才是「標準」的結果……如果非要說微軟在 OOXML 裡面有私貨,我認為那應該就是微軟對 OOXML 的默認渲染,算是這個「標準」中摻雜的私貨了。


曾經參與過 LibreOffice 導入導出微軟 OOXML 文檔功能的開發,因此有一點了解。

OOXML 本身夾帶了多少私貨姑且不表。想指出的是:微軟自家 MS Office 的實現和 OOXML 文檔規範不是完全一致的。

舉個修過的小 bug 為例:一個在 MS Office 里創建的圖形,在 LibreOffice 里不能正確顯示。儘管 LibreOffice 已經按照 OOXML 規範實現了這部分功能的代碼。

後來調試發現 MS Office 輸出這個圖形時某個關鍵標誌位的值就不是按照 OOXML 規範來的。最後為了兼容 MS Office,也只能將 LibreOffice 的實現做相應的(反規範)修改。

回想起來實在是坑。


OpenXML是絕對公開的, 比起之前的BIFF(二進位)格式不知道開放了多少倍。

OLE對象,圖片等等東西那是屬於第三方的東西,根本不屬於OOXML的範疇。

VBA也是開放的,金山早就兼容了VBA。VBA的語法很簡單,操作的Office對象(OM:object model)也都是公開的東西,介面都給出來了,難道你還要讓微軟把實現公開出來。

OOXML已經成了國際辦公軟體文檔格式的標準,這個東西是天然決定的,office的市場佔有率在90%以上,世界上存在的office文檔也大部分都是office產生的,你定一個不一樣的標準,再好也沒有生命力。

就算微軟公開了OOXML的標準,他還是有競爭力,標準不可能描述所有的情況,最後還是要以他Office的實際行為為準,例如,隨便兩三個元素,缺這個,缺那個,組合的情況,應該怎麼去解釋,如果兩個辦公軟體做的不一樣,你說用戶會認哪一個? 所以其他辦公軟體最大的疼苦是要去兼容Office的行為。

另:想看看OOXML的樣子很簡單,隨便找一個docx,xlsx,pptx的文件,用解壓縮軟體解壓一下(實際是一個zip壓縮包),然後就能看到一堆xml文件,命名結構很容易看懂的,你操作一下再保存,就能看出來變化的地方,每個節點代表什麼意思。


你應該問為什麼開源界蝦兵蟹將戰鬥力太弱

最起碼拿WPS企業版做對照吧


我先排除一點吧,VBA,對象的Microsoft數學公式編輯器,OLE對象,增強圖元格式(雖然微軟在OSP放了規範PDF且保證免稅),還有什麼


推薦閱讀:

諾基亞如果現在選擇 Android 系統,還有救嗎?
為什麼必應完全不遵守Robots協議?
如何評價微軟 11 月 13 日宣布 .Net 核心運行庫開源並跨平台運行?
招行總行信息技術部和微軟北京,應該選哪個 offer?
如何看待微軟成為Github上開源貢獻者最多的公司?

TAG:微軟Microsoft | MicrosoftOffice | LibreOffice |