2012-07-20 25 views
6

Apache POI kullanarak bir xls e-tablosundan görüntü bilgileri elde etmek mümkün mü?Bir görüntüyü ve konumunu exache dosyasından kullanarak alın Apache POI

Projelerimden birinde .xls dosyasındaki bazı görüntüleri okumam gerekiyor. Tüm görüntüleri birlikte okuyabiliyorum, ancak görüntüleri nasıl alabilirim (sütunlar ve satır sayısı veya koordinatlar gibi)? Aksi takdirde görüntülerin pozisyonunu alabilirim ancak resimdeki isim veya uzantı ya da başkaları gibi, bulunan konumlardaki belirli bir görüntü hakkında bilgi edemiyorum. Görüntüleri ve konumları nasıl alabilirim? get images positions...

+0

Bu alakalı olabilir: http://stackoverflow.com/questions/9232844/get-picture-position-in-apache-poi- dan-excel-xls-hssf Ayrıca, bu: http://apache-poi.1045710.n5.nabble.com/Parse-Excel-with-Picture-td2306811.html – Sid

+2

Ben de aynı yüzleşiyorum sorun ve bunu buldum: http://apache-poi.1045710.n5.nabble.com/Excel-image-sizes-td5582506.html –

cevap

4

İşte

read all images... ve burada burada bir göz atın:

http://poi.apache.org/spreadsheet/quick-guide.html#Images

Örnek:

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(); 

    } 
} 

Bundan sonra, bulmak Magick uzanır ImageInfo gibi araçlar kullanabilirsiniz çeşitli yapılandırmalar. Hatta görüntüleri farklı boyutlara dönüştürebilirsiniz.

http://blog.jaimon.co.uk/simpleimageinfo/SimpleImageInfo.java.html

- Bu

0

yardımcı Ve yineleyici kullanmak istiyorum `yok

(bazı kere onlar ağır neden) ise Umut:

de bu sınıfın bir göz atın

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; 
} 
İlgili konular