Excel2007以降のファイルは圧縮ファイル

Excelのファイル形式(拡張子)

xlsx

ですが、これはExcelの2007以降のバージョンのデフォルトとなっているOffice Open XML形式

というXMLをベースにしたファイル形式になります。

 

従来(2003まで)の場合のバイナリ形式とは異なり

・ Officeがインストールされていない環境でも見ることができる可能性あり

・ファイルサイズが小さくなる

などのメリットがあります。

 

で、面白いのが、このxlsx形式のファイルの拡張子を「zip」に変えて解凍すると

下のように複数のXMLファイルが解凍されます。

 

ファイルサイズが小さくなるのは、標準でzipに圧縮してるからだし

中身はxmlファイルなので、Officeがインストールされてなくても見たりできるのは納得です。

 

ただ、このファイル形式

アプリケーションやサービスによっては、

このxlsxファイルを

1つのファイルとして認識するか

複数のxmlファイルとして認識するか

が違うようです。

 

Windows上では、ひとつのxlsxファイルは、ひとつのファイルとして認識しますが

(ものすごい当たり前のこと書いてますが・・・)

某、メールホスティングサービスのウィルスチェックサービスは

このファイルをxlsxファイルではなく、複数のxmlファイルとして認識します。

(ちゃんと中身までチェックするという意味では正しい動作ですね)

ただ、このウィルスチェックサービスは一度にスキャンできるファイル数に上限があるため

複雑なxlsxファイル(xmlファイルが多くなるようなファイル)は、ウィルスチェックができず、メールを破棄してしまうことがあるようです。

(これは実際にお客様でメールが受け取れない というトラブルの時の原因でした)

 

ちなみに、Excelファイルにパスワードを付けると、zipにしても解凍されませんし

解凍できないため、上記ホスティングであっても上限に達することなくメールを送ることはできるようです。(ウィルスチェックはしませんけどね)

 

今回のような原因でメールが送れない なんてことはかなりレアケースかもしれませんが

メールが届かない/送れない みたいなときのヒントになればよいかなと思います。