目次

Excelファイルから画像を取り出す

Excelファイルにある図を、なるべく劣化せずに画像として取り出す方法を調べた文章です
ただ今更新中

Excel 97-2003 ブック (*.xls) の場合

Office2007・2010

  1. 全ての図のサイズ(拡大/縮小)を縦100%・横100%にします
  2. ファイルの種類を「Excel ブック (*.xlsx)」形式で保存します
  3. ファイルの拡張子を「.zip」にして、zipファイルとして解凍します
  4. 解凍された内容に「xl\media」というフォルダがあり、その中に画像があります

OfficeXP・2003

  1. Excelファイルの保存で「Excel 2007 ブック (*.xlsx)」を選べるか確認します
    選べない場合は以下のWebページから「Microsoft Office 互換機能パック」をダウンロードしてインストールします。
    ダウンロードの詳細 : Word/Excel/PowerPoint 用 Microsoft Office 互換機能パック
    これをインストールすると、OfficeXP(2002)・2003で、Offece2007以降から採用された新形式のファイルの読み込み・保存が出来るようになります。
  2. すべての図のサイズ(倍率)を縦100%・横100%にします
  3. ファイルの種類を「Excel 2007 ブック (*.xlsx)」で保存します
  4. ファイルの拡張子を「.zip」にして、zipファイルとして解凍します
  5. 解凍された内容に「xl\media」というフォルダがあり、その中に画像があります

Excel 2007-2010 ブック (*.xlsx) の場合

  1. ファイルの拡張子を「.zip」にして、zipファイルとして解凍します
  2. 解凍された内容に「xl\media」というフォルダがあり、その中に画像があります

調べた事

上記の結論を出すのに調べた内容を書いておきます。

  • xlsxは拡張子を「zip」にすれば、zipファイルとして解凍でき、内部で保持している画像を取り出す事が出来る
  • Excel上で図のサイズを調整しても、元の画像のクオリティは内部で保持している
    しかし図の圧縮をしたり、xlsからxlsxにして保存を行うと、現在のサイズが100%と見なされて保存されるため、画像のクオリティが失われる
  • ファイルの種類をhtmlで保存した際に生成される画像は、図のサイズに影響する
    元の画像と微妙に違う大きさの画像が作成されるため、厳密に言うとこの方法では元のクオリティを再現出来ていない
    さらにこの方法だとhtmlで表示するための縮小画像も一緒に保存されるため、分別が面倒になる
  • xlsx形式で画像を図として貼り付けした際に、サイズ指定が変換する 貼り付けた直後はサイズが100%なのに、再度ファイルを開くと違うサイズになっている(私の所では229%になってたりする)