Excel画像抽出
この記事は最新更新日から、4年以上経過しています。

Excelの各行に画像が挿入されていて、行データと関連付けて画像を取得

いろいろ調べた結果、拡張子「xlsx」を「zip」に変更して解凍すれば構成ファイルが見れますが、画像ファイルと行データとの関連性を見つけられませんでした。

 

画像と行を紐付けするために、VBAを作成

Excelに列を追加して、ユニークな値(重複しない値)を作成します。

VBAを利用して作成したユニークな値を、画像プロパティの「代替テキスト」の「タイトル」に設定していきます。

 

上記のコードは汎用的では無いです。

もし利用する場合は、参考程度でお願いします。

 

Excelの拡張子を「zip」に変更して解凍

解凍したファイルの中で、2つのファイルを利用します。

一つが「drawing数字.xml」のファイルで、下画像の赤枠ファイルになります。

excel 画像抽出

このファイルの中には、画像情報が保存されています。

xdr:twoCellAnchorごとに、1画像の設定項目があり、VBAで設定したタイトルもxdr:cNvPrのtitle要素として保存されています。

このtitle要素の値と、a:blipのr:embed要素にあるIDを取得しておきます。

 

 

もう一つが「_rels」フォルダのファイルになります。

このファイルのRelationshipのId要素が、先に取得したIDと紐付きます。

実際の画像ファイルは、Target要素に設定されていますので、エクセルの行と画像を紐付けて取得できる情報を得ることができます。

エクセル 画像抽出

 

文字で書くと、かなり面倒なことを行わないと画像までたどり着けないので簡易的なツールを作成しました。

開発環境はC#2015です。

 

 

By にど寝

もともと名古屋でシステムエンジニアをしてましたが、現在は地元に帰省してネットショップの社内システムエンジニアをしてます。  

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)