きな粉もち.net

.NET関連仕事に携わっています。OSSのソースを読んで気がついたことを中心に呟いたりブログに投稿したりしています。最近はUiPathを使ったRPAも研究中。気軽にフォローやツッコミよろしくおねがいします! Gitはここを使っています https://github.com/kinakomotitti

xls拡張子 × xlsx拡張子 × 違い

Excelの拡張子である.xls、.xlsx、xlsmなどについての話題です。
それぞれが何であるか、どの拡張子を選択すればよいか、などについて
定期的に話題になるので、自分なりに簡単にまとめておきます(公式ドキュメントはあるのですが。。。)

まずは、違いを見るために、ざっくりとOfficeの歴史をまとめてみました。

歴史的な背景

1989年 Officeのファーストバージョンがリリース。

1995年 Office7がリリース。初の32bit版Office誕生。Windows 95と同時リリース。

1998年 XMLの初版が公開。

2001年 XPと同時にOffice10をリリース。

2003年 Office11リリース。XMLドキュメントに対応。

2007年 Office12リリース。標準保存形式がOffice Open XMLに変更。

2010年 Office14がリリース。64bot版Office誕生。


・・・いろいろな変化がありますが、2007年に標準のファイル形式がそれまでのバイナリ形式から、
open office xmlに変わったことが結構なインパクトがあると思います。

この変更により、たとえばExcelでは
.xlsファイル であるバイナリ形式のファイルと、
.xlsxファイル であるXML形式のファイルの形式が
存在するようになりました。

よく、お客様の環境で開けないといけないから古い形式で保存しなさいって聞くことがあると思います。
その原因がここのあたりにあるということだと思います。
xlsをXML形式で保存するから、xlsx。
xlsにマクロをつけて保存するから、xlsm。
のように認識しておけば良いでしょうかね。


最後に、公式ドキュメントにいろいろと面白いシナリオが載っていたので、そのシナリオに合わせて作業してみました。
zip化して中身のxmlファイルを見るとかできることに驚きました。。。

以下シナリオ抜粋です。

好奇心旺盛なユーザーであるハワードは、2007 Office リリースでの新しいファイル形式のコンテナが ZIP ファイルであることに気付きました。そして、これを調べたくなり、Word 2007 で作成したドキュメントの 1 つを ZIP アプリケーションを使用して開いてみます。XML ドキュメントのコンテンツのように見えるファイルがいくつかと、元のドキュメントに入っていたのと同じ画像がいくつか見つかりました。興味の沸いたハワードは、XML ファイルの 1 つをメモ帳で開いて、Word で生成されたのはどのような XML ファイルなのかを調べます。そして、ドキュメントの中身を簡単に覗けることに満足し、メモ帳と ZIP アプリケーションを閉じて、Word でファイルを開き直し、ドキュメントでの作業を続けました。



Office (2007) Open XML ファイル形式の概要
Microsoft Office - Wikipedia