Apache POI3.8のライブラリを使用し、Excelに埋め込まれている画像を取り出します。
【手順】
1.「Javaプロジェクトの作成方法」の手順で、「POIExcelSample011-ExtractImage」といプロジェクトを作成。
2.「poi-3.8-20120326.jarをライブラリに設定する方法」の手順で、プロジェクトに「poi-3.8-20120326.jar」のライブラリを追加。
3.「poi-3.8-20120326.jarに依存するライブラリの設定する方法」の手順で、プロジェクトに「commons-logging-1.1.jar」と「log4j-1.2.13.jar」のライブラリを追加。
4.「poi-3.8-20120326.jarに依存するCodec1.5の設定方法」の手順で、プロジェクトに「commons-codec-1.5.jar」のライブラリを追加。
5.「Javaクラスファイルの作成方法」の手順で、「Main」というクラスを作成。
6.「Main.java」を以下の様に入力。
import java.io.FileInputStream; import java.io.FileOutputStream; import org.apache.poi.hssf.usermodel.HSSFAnchor; import org.apache.poi.hssf.usermodel.HSSFPicture; import org.apache.poi.hssf.usermodel.HSSFShape; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.poifs.filesystem.POIFSFileSystem; public class Main { private static final String OUTPUT_FILE = "ExtractImage.jpg"; private static final String INPUT_FILE = "InsertImage.xls"; public static void main(String[] args) throws Exception { FileInputStream in = null; try { in = new FileInputStream(INPUT_FILE); POIFSFileSystem fs = new POIFSFileSystem(in); HSSFWorkbook wb = new HSSFWorkbook(fs); HSSFSheet sheet = wb.getSheetAt(0); for (HSSFShape shape : sheet.getDrawingPatriarch().getChildren()) { if (shape instanceof HSSFPicture) { HSSFPicture pshape = (HSSFPicture) shape; HSSFAnchor anchor = pshape.getAnchor(); System.out.println(anchor.getDx1()); System.out.println(anchor.getDx2()); System.out.println(anchor.getDy1()); System.out.println(anchor.getDy2()); byte[] data = wb.getAllPictures().get(pshape.getPictureIndex() - 1).getData(); FileOutputStream out = new FileOutputStream(OUTPUT_FILE); out.write(data); } } } finally { if (in != null) in.close(); } } }7.「Ctrl+Shift+O」を押し、パッケージのインポート文を補完。
8.「Ctrl+Shift+F」を押し、ソースコードをフォーマッティング。
9.「Apache POI3.8で画像を埋め込む方法(成功)」で作成された「InsertImage.xls」をコピーし、「POIExcelSample011-ExtractImage」プロジェクトを選択して「Ctrl+V」で貼り付け。
10.「Javaプロジェクトの実行方法」の手順で、「Main.java」を実行。
11.コンソールにエラーが出力されていないか確認。
(※コンソールが表示されていない場合は、「コンソール・ビューの表示方法」を確認)
12.「リフレッシュ(ローカルファイルとの同期)の方法」の手順で、プロジェクトをリフレッシュ。
13.「POIExcelSample011-ExtractImage/ExtractImage.jpg」が作成されています。
14.「POIExcelSample011-ExtractImage/ExtractImage.jpg」をダブルクリック。
15.「ExtractImage.jpg」が以下の様に開けば成功です。
以上です。
0 件のコメント:
コメントを投稿
注: コメントを投稿できるのは、このブログのメンバーだけです。