Excel版本與檔案格式

要談Excel之前,必須先談Office。近期(也快10年了?!)Office的分水嶺是 Office 2007,主要改變和差異如下:
  • Office 97, 2000, 2003: 過去的版本,彼此間的相對差異不大,整體而言2003增加一些人性化的功能,只不過不是每個都成功、甚至導致問題。例如選單項目根據使用頻率顯示或隱藏(最後我都一律關掉這功能),或者在Word中排版圖片或表格,使用Word 2003會讓我想砸電腦,永遠搞不定改回用Word 2000可以3秒搞定的排版。
  • Office 2007, 2010, 2013, 2016: 最顯著的差異在Ribbon介面,初接觸時非常令人卻步,但習慣反而覺得這樣群組選單是不錯的設計。其次是每個應用程式都使用新的檔案格式(規則是副檔名加上1個X,例如*.DOC換成*.DOCX、*.XLS換成*XLSX)。其他就是越新的版本越強化了視覺化和預先定義的功能(把預想的目的直接做成一個按鈕或設定),以及與雲端網路的更深入整合。
而針對Excel,環境許可的話,請不要再用Excel 2003以前的舊版本,很多小地方是可以大幅簡化和加快使用的作業。只不過我建議會不要使用Excel 2007,其他任何版本都沒太大差異。在過去的經驗上,這個版本蠻常導致檔案最後無法存檔、或無法正常開啟(升級到Office 2007 SP1僅些微改變)。
在我的介紹中,會避開著墨哪個版本開始導入的,這些都可以在微軟的線上說明找到答案,也可以參考Wikipedia的比較「Microsoft Excel」條目。

接下來討論Excel新舊格式的差異,主要可用這個屬性在表格中解釋。

-->
舊格式新格式
*.XLS*.XLSX*.XLSM*.XLSB
官方名稱Excel 97-2003活頁簿Excel 活頁簿Excel 啟用巨集的活頁簿Excel 二進位活頁簿
工作表允許最大列數65,536列1,048,756列
工作表允許最大欄數256欄16,384欄
允許檔案內儲存巨集YesNoYesYes
用Excel 2003開啟完整讀取 & 修改僅可讀取無法更新存檔
用Excel 2007以後開啟「相容模式」開啟 & 修改完整讀取 & 修改
檔案格式(概念)專屬格式的檔案封裝檔
(內含多個檔案)
透過二進位方式壓縮的封裝
大量資料的檔案大小
(經驗僅供參考)
比*.XLSX稍微小一些最大同*.XLSX最小
(接近使用ZIP壓縮後)
適用情境較多系統支援XLS的格式
直接上傳資料
完整使用新功能
舊系統不支援上傳此格式
(略)適合網路環境使用(讀取與儲存速度快)
但尚未遇過系統支援此格式上傳

Note:
  • 新版Excel (2007以後)開啟 *.XLS進入「相容模式」時,除了工作表欄列上限改變,呈現的細節有可能和直接使用Excel 2003開啟有些許差異(ex: 顏色)。
  • 「相容模式」會顯示在開啟舊的*.XLS的標題後面,有很大的提醒成分,提醒你現在是用新的程式開啟一個向下相容的檔案,使用到的新功能存檔可能不完整。最容易被忽略掉的是「相容模式」是模擬舊Excel程式,參照到新的Excel 不能引用整欄或整列
    • 最常見的案例就是在新版Excel使用VLOOKUP參照另一個「相容模式」(舊Excel)檔案的整欄是可以的,反之卻不然,你無法在「相容模式」檔案中用VLOOKUP參照新Excel檔案的整欄。原因很簡單:列的上限導致的,在「相容模式」中檔案僅能處理65,536列,參照新版Excel格式的整欄是表示參照從第1列到第1,048,756列,即使使用最新的Excel程式仍無法在舊Excel檔案參照超過舊檔案格式上限的範圍。
更進一步的探討Excel程式和他的檔案格式,不得不談Excel程式是一個很聰明(?)、可以暗地裡幫你處理很多事情的程式—可以拿不是真正*.XLS的檔案騙Excel程式,但他發現自主地幫你解讀成Excel可以呈現的長相。
很多系統都有提供下載Excel的方式提供資料,但實際上檔案的內容與格式不一定是真的Excel,貪圖開發的方便或成本考量下,會提供本質上是其他格式、但把檔案名稱取成*.XLS,誘使你的電腦開啟Excel程式讀取此檔,透過Excel程式自主地「剖析」內容,自動匯入純文字格式的方式(逗號分隔CSV或Tab分隔)、或是HTML的表格。(僅限*.XLS)
大多數的時候你不會覺得有差異,只有當你存檔的時候Excel程式會提醒你要另存新檔才能保留所做的更新。其他可以參考的徵兆是:

  • 只有一個工作表(sheet)且名稱就是檔案名稱,沒有設定格式的純資料。這多半是純文字檔案(CSV or TAB),對操作上就等同「相容模式」檔案,除了存檔時會提醒你直接存檔不會存成真的*.XLS格式,建議你要另存新檔。這樣的方式可能存在的風險有內容某欄文字有特殊字元或其他原因,發現資料中有亂碼或中間某幾列的欄是沒有對齊(跳1, 2欄),或者部分文字變成亂碼。
  • 只有一個工作表(sheet)且名稱就是檔案名稱,特別的是內容有被設定格式,例如格線、字型、文字大小顏色等。這多半是網站response以*.XLS的文件格式,內容其實是HTML(或僅table tag),同樣在操作會在存檔時會提醒。這樣的方式風險在於內容可能會多帶了HTML的編碼文字(最麻煩的是看不到的空白們),而且樞紐等功能會無法執行。

小結:

  1. 知道Excel的檔案格式,依照需求目的選擇適合的
  2. Excel 97-2003活頁簿在Excel 2007版以後都是用「相容模式」處理,在Excel 97-2003活頁簿中去參照新Excel檔案時,避免參照範圍寫成整欄或整列(ex: A:D),改用指明的範圍即可(ex: A1:D100)
  3. 開啟的檔案看起來不是真的Excel時,有更動請務必選擇「另存新檔」才能正確儲存更動,否則可能是白工。有功能不能用也事先另存、關掉再開來用。

同場加映:
Excel自動開啟純文字格式的結果不是你想要的該如何解決 (待撰寫)
[技巧] 看不見的空白(VBA) (待修正-分用VBA巨集或不用巨集的解決方式)

留言

這個網誌中的熱門文章

Excel技巧(1):檔案肥大的原因,附上減肥撇步

Excel技巧(2):拜託殺了那些看不見的空白吧!