2008年2月26日

為何Office的檔案格式如此複雜?

原文:Why are the Microsoft Office file formats so complicated? (And some workarounds)

微軟前幾天才剛剛公開了Office格式的檔案規格。Office的檔案規格很嚇人:光光Excel97-2003的檔案規格就有349頁之多!有人就說啦,這個規格會這樣,一定是因為:

  • 微軟故意弄的更複雜
  • 是瘋子的傑作
  • 是一群瘋狂工程師的成果
  • 因以上因素,所以它不可能正確的被閱讀或使用

Joel在他的文章告訴我們,之所以Office的檔案規格會如此複雜,不是因為上述的猜測,而是下列的原因:

  • 它的設計是「如何在非常老的電腦上跑的快」:所以它是binary格式,不是純文字,可以不需要parsing。檔案格式也會為了速度而更複雜。
  • 它預期你會用程式庫來使用檔案:用微軟的程式庫,取得檔案的內容是很容易的。直接去解析檔案…上天保佑…
  • 它的設計沒有考慮互通性:微軟的工程師在改格式時,注意的是:如何改最快,如何改最少行程式。要互通性?用RTF吧!
  • 因為Office真的很複雜:想想Word,Excel有多少功能吧!這些功能都與檔案格式相關,最終都要可以存到檔案中,難怪Office的檔案規格會這麼恐怖…
  • 因為Office的歷史悠久:一個應用程式,只要被使用的時間愈久,能做的事就愈雜,也難怪會如此複雜。

相信一般人是想去使用Office的檔案,不是自己寫一個Word的競爭對手吧!?如何你的程式需要用到Office的檔案,Joel提供了二個建議:

  • 讓Office幫你做:裝一套Office,用VB script或其他方式去呼叫Office幫你做事吧!之前我就是用這樣方式,寫Ruby在Excel的試算表中插入資料的
  • 用其他格式:請愛用RTP,HTML,CSV等檔案格式吧!

最後要說的事,原文的內容更精彩豐富,有興趣的可以去參考一下。

3 意見:

匿名 提到...

應該是RTF,而不是RTP格式吧!?

ddman 提到...

修正了,謝謝!

wonder 提到...

底下還是有一段
用其他格式:請愛用RTP,HTML,CSV等檔
^^^
案格式吧!