是否可以使用Apache POI從xls電子表格中提取圖像信息?使用Apache POI從excel文件獲取圖像及其位置
在我的一個項目中,我需要從.xls文件讀取一些圖像。我可以一起閱讀所有圖像,但是如何獲取圖像位置(如列和行數或座標)?否則,我可以獲取圖像位置,但我無法知道關於發現位置的特定圖像的信息,如圖片名稱或擴展名或其他。我如何獲得圖像和位置?
這裏read all images...這裏get images positions...
是否可以使用Apache POI從xls電子表格中提取圖像信息?使用Apache POI從excel文件獲取圖像及其位置
在我的一個項目中,我需要從.xls文件讀取一些圖像。我可以一起閱讀所有圖像,但是如何獲取圖像位置(如列和行數或座標)?否則,我可以獲取圖像位置,但我無法知道關於發現位置的特定圖像的信息,如圖片名稱或擴展名或其他。我如何獲得圖像和位置?
這裏read all images...這裏get images positions...
看一看這裏:
http://poi.apache.org/spreadsheet/quick-guide.html#Images
樣品:
List lst = workbook.getAllPictures();
for (Iterator it = lst.iterator(); it.hasNext();) {
PictureData pict = (PictureData)it.next();
String ext = pict.suggestFileExtension();
byte[] data = pict.getData();
if (ext.equals("jpeg")) {
FileOutputStream out = new FileOutputStream("pict.jpg");
out.write(data);
out.close();
}
}
在此之後,你可以使用工具,如的imageinfo延伸Magick找到出各種配置。呦,甚至可以將圖像轉換成不同的尺寸
看看這個類還有:
http://blog.jaimon.co.uk/simpleimageinfo/SimpleImageInfo.java.html
- 希望這有助於
如果你不`噸要使用迭代器(導致一些時候,他們是沉重的)
public List readDrawing(Workbook workbook) throws Exception {
List list = workbook.getAllPictures();
for (int i=0; i<list.size(); i++) {
PictureData picture = (PictureData) list.get(i);
String ext = picture.suggestFileExtension();
byte[] data = picture.getData();
FileOutputStream out = new FileOutputStream("imageName" + "." + ext);
out.write(data);
out.close();
}
return list;
}
這可能是相關的: http://stackoverflow.com/questions/9232844/get-picture-position-in-apache-poi-從-Excel的XLS-HSSF 而且,這樣的: http://apache-poi.1045710.n5.nabble.com/Parse-Excel-with-Picture-td2306811.html – Sid 2012-07-20 22:22:21
我也面臨同樣的問題,我發現這個:http://apache-poi.1045710.n5.nabble.com/Excel-image-sizes-td5582506.html – 2013-03-10 22:42:02