使用JXL讀取Excel中的圖片,需要說明的是JXL讀取Excel中的圖片有限制,只支持png格式的圖片
由于JXL讀取Excel中的圖片是一次讀取所有的圖片,并且存在一個圖片集合中,
而且很多時候Excel中一行中數據不光是圖片類型,還有其他類型,所以需要對圖片在Excel中的行索引進行記錄,以方便第二次索取
所以程序中采用了Map集合存儲圖片的在Excel中的行索引和圖片字節數據(是存儲在一個字節數組中)
class ReadPicture{
private Map<Integer, byte[]> map;
public ReadPicture(){
map = new HashMap();
}
public Map readPictureData(String excelPath) throws BiffException, IOException{
//Excel工作薄對象
Workbook book = Workbook.getWorkbook(new File(excelPath));
//第一張工作表對象
Sheet sheet = book.getSheet(0);
//判斷讀取sheet的行始位置
Cell cell = null;
for(int i=0;i<sheet.getNumberOfImages();i++){
Image image = sheet.getDrawing(i);
if(image!=null){
//System.out.println("image.getRow()--->" + image.getRow());
int key = (int) image.getRow();//拿到圖片所在的行索引
//System.out.println("key--->" + key);
byte[] imageData = image.getImageData();//拿到該行圖片的字節數據
map.put(key, imageData);
}else{
break;
}
}
return map;
}
}