2014-06-17 107 views
0

我將excel(xls,xlsx)文件轉換爲html。但是,當圖像存在時,我無法獲取圖像大小(尺寸),這在Excel文件中存在。我正在使用Apache poi。 如何獲取該文件的圖像大小?請幫助我。如何從Excel文件讀取圖片大小?

+0

你以後尺寸是多少?圖像的大小以字節爲單位?圖像像素的原始大小?某些單位的Excel中顯示的縮放大小?還有別的嗎? – Gagravarr

回答

0

此源文件解釋瞭如何從excel文件獲取圖片數據:http://poi.apache.org/spreadsheet/quick-guide.html#Images

在循環中有一個

byte[] data = pict.getData(); 

您可以使用字節數組,寫入到一個ByteArrayOutputStream對象並調用大小()方法來檢索寫入OutputStream文件的大小。

ByteArrayOutputStream baos = new ByteArrayOutputStream(); 
baos.write(data); 
int fileSizeInBytes = baos.size(); 

我希望這會有所幫助。

+0

這只是返回圖像的總字節大小。要獲取尺寸,您需要找出圖像類型,然後解碼字節數組中的圖像標題。 –

+0

哦,我以爲他在試圖找出圖片的文件大小,而不是尺寸。我很抱歉。 –

+0

是的邁克爾我想獲取圖片的尺寸。 – Meastro

0

這可能是一個矯枉過正的問題,但您可以從字節數組創建一個圖像並檢查其大小。例如:

for (HSSFPictureData pic : workbook.getAllPictures()) { 
    InputStream in = new ByteArrayInputStream(pic.getData()); 
    BufferedImage image = ImageIO.read(in); 
    System.out.println(image.getWidth() + ":" + image.getHeight()); 
}