Excel/PowerPoint/Wordファイルから画像を取り出す Web サービスを作ってみた

Office 2007/2010/2013 の Excel/PowerPoint/Word ファイル(.xlsx・.pptx・.docx など)は、zip 形式で圧縮されていて、拡張子を .zip に変えると、使われている画像などのメディアファイルを簡単に取り出せます。

office

それと同じことをする、Web サービス を作ってみました。Web ブラウザーに Office ファイルをドロップすると、メディアファイルだけ残した zip ファイルを作成し、ダウンロードできます。

クライアント側の JavaScript で zip の展開をしているため、サーバーにはファイル情報を送っていません。

ファイルをコピーして拡張子を zip に変換して画像を取り出すのは、少しだけ手間ではありますが、はたして、このサイトを開いて画像を取り出すのとどっちが楽なのか……。

コード

JavaScript で、zip ファイルを扱える JSZip を使いました。

ファイルの中身を走査し、Office 文書のメディアフォルダー以外のものは、元の zip から削除することで、メディアファイルのみの zip を作っています(ファイルを取り出して再度 zip ファイルを作ると遅かったので)。

zip ファイルのダウンロード保存は、JSZip のサンプルでも使われている FileSaver.js を使っています。