NeGiMeMo.net

ねぎさんのメモ帳。日常・メモ・ときどきWordPress。

パワポやエクセルから取り込まれているデータを抽出する方法

bell賞味期限切れコンテンツ

この記事は公開または最終更新から1335日くらい経過しています。
このメッセージが表示されている記事(特にプログラミング系)は情報が古くなっている可能性があるので注意して下さい。

Web屋さんとかやってると、結構原稿とかがパワポやエクセルで送られて来るのですが、

たまーに画像もその中に全部貼り付けてあって、そこから使ってくださいとか、

この間ものすごかったのでは画像データ送りますっていうんで開けてみたらご丁寧にパワポに全部貼り付けて説明や指示が書かれてたりすることもありました。

いや、確かに画像をどうやって使って欲しいのかは分かりやすいのかもしれませんけど、実際に加工したりするにはそのまんまじゃ使えません。

画像の加工はパワポでもできなくはないのかもしれませんが、しっかりとつくるならやはりPhotoshopとかでやりたいものです。

クライアントさんにお願いして画像は画像のまま貼り付けずに改めて送り直してもらえればそれで済むのですが、どうしてもお願いしてからデータが届くまでにはタイムラグがあります。ましてやクライアントさんのほうの担当者が更に社内の別の人から画像をもらってまとめて送ってなんてやってたらどんどん残り時間が減ってしまいますね。

そんな時に便利な小ワザ(?)を知ったので、忘れないようにメモです。

と、その前に…

この方法が使えるのはOffice2007以降のソフトで、新しいフォーマットで保存されているファイルに限ります。

見分け方は簡単で、拡張子の後ろに「x」が増えているのがそれです。

ワードなら「.docx」、エクセルなら「.xlsx」、パワポなら「.pptx」です。

(拡張子を表示しないようにしてる場合は表示するようにして確認して下さい)

やり方

  1. 開きたいファイルを複製する。
  2. 複製したファイルの拡張子を「.zip」に手動で書き換える
    拡張子を変えると開けなくなるかもしれないよって注意されるけど無視して書き換える。
  3. おもむろに解凍する
  4. 解凍先にいくつかのフォルダができているので、その中のにある以前の拡張子と似たような名前のフォルダを探して開く。
    「.docx」だったら「doc」、「.pptx」なら「ppt」、「.xlsx」はちょっとちがって「xl」ってフォルダがあるはずなのでそれを開きます。

以上です。

この中にそのドキュメントのデータが全部収められています。

と、いうことで、

Wordの場合は /word/document.xml、

Excelならば /xl/worksheets/sheet1.xml,sheet2.xml…

または、 /xl/sharedStrings.xml

パワポならば /ppt/presentation.xml

または /ppt/slides/slide1.xml,slide2.xml…

を開けば中身を一応読むことは出来ます。そのままじゃさすがに読みにくいですが…。

 

どゆこと?

この新しいフォーマット、乱暴に言えば複数の必要なXMLファイルと内包する画像などのデータをZIPで圧縮した上で拡張子をそれぞれに対応するものに書き換えただけのものらしいです。

それに対して古い形式(xmlやppt)はそのソフト専用のデータ(バイナリ)のため、この方法は使えません。

で、画像は?

さて、今回やりたかった画像の抽出ですが、

画像などのデータは今開いたXMLの入っているフォルダの中にある「media」というフォルダに入ってます。

mediaフォルダに入るとスライドの画像がずらずらと出てきます。パワポで縮小されて貼り付けられててもオリジナルサイズで取り出せるので助かります。(縮小された状態で貼り付けてあったらどうしようもないですが…)

まとめ

  1. 拡張子の最後に「x」がついてる新しいタイプのOfficeのドキュメントはZIPで固められたXML
  2. よって拡張子を「.zip」に変えてしまって解凍すると中身が取り出せる
  3. 拡張子と対応するフォルダの中以降に文書がXML形式で収められている
  4. 画像などのメディアファイルはその更に奥の「media」フォルダの中
  5. ご利用は計画的に。

 

因みにこれ、結構有名なはなしらしいですね。つい最近まで知らなかったよ…。。

TAGS