在excel07格式的文件中图片的数据和单元格的数据是分开存放的,所以在读的时候也是分开读。用户可以先读图片的数据,将图片数据保存在List<ImageData>
中,然后再读单元格的数据,最后再把单元格数据和图片数据进行对应。
ImageData中保存了图片所在sheet的名字、index、在sheet中的坐标、图片类型、图片数据等信息。
代码可能还有不完善的地方,欢迎提出意见
用法: /**
-
使用文件名读图片信息,默认读所有sheet中的图片,图片数据放在imageDataList中 */ @Test public void readImageWithFileNameTest() throws IOException { String fileName = TestFileUtil.getPath() + "demo" + File.separator + "imageRead.xlsx";
ArrayList<ImageData> imageDataList = new ArrayList<ImageData>();
ImageDataReadListener imageDataReadListener = new ImageDataReadListener(imageDataList); EasyExcel.readImage(fileName, imageDataReadListener); }/**
-
使用输入流读图片信息,默认读所有sheet中的图片,图片数据放在imageDataList中 */ @Test public void readImageWithStreamTest() throws IOException { String fileName = TestFileUtil.getPath() + "demo" + File.separator + "imageRead.xlsx"; ArrayList
imageDataList = new ArrayList (); ImageDataReadListener imageDataReadListener = new ImageDataReadListener(imageDataList); File imageFile = new File(fileName); InputStream in = new FileInputStream(imageFile); EasyExcel.readImage(in, 1, imageDataReadListener); in.close(); } /**
-
使用文件名读指定sheet图片信息,图片数据放在imageDataList中 */ @Test public void readImageWithSheetNameTest() throws IOException { String fileName = TestFileUtil.getPath() + "demo" + File.separator + "imageRead.xlsx"; ArrayList
imageDataList = new ArrayList (); ImageDataReadListener imageDataReadListener = new ImageDataReadListener(imageDataList); EasyExcel.readImage(fileName, "image1", imageDataReadListener);
}
/**
-
使用输入流读指定sheet图片信息,图片数据放在imageDataList中 */ @Test public void readImageWithSheetNameTest1() throws IOException { String fileName = TestFileUtil.getPath() + "demo" + File.separator + "imageRead.xlsx"; ArrayList
imageDataList = new ArrayList (); ImageDataReadListener imageDataReadListener = new ImageDataReadListener(imageDataList); File imageFile = new File(fileName); InputStream in = new FileInputStream(imageFile); EasyExcel.readImage(in, "image1", imageDataReadListener); in.close();
}
/**
-
使用文件名读指定索引的sheet中的图片信息,图片数据放在imageDataList中 */ @Test public void readImageWithSheetNoTest() throws IOException { String fileName = TestFileUtil.getPath() + "demo" + File.separator + "imageRead.xlsx"; ArrayList
imageDataList = new ArrayList (); ImageDataReadListener imageDataReadListener = new ImageDataReadListener(imageDataList); EasyExcel.readImage(fileName, 2, imageDataReadListener);
}
/**
-
使用输入流读指定索引的sheet中的图片信息,图片数据放在imageDataList中 */ @Test public void readImageWithSheetNoTest1() throws IOException { String fileName = TestFileUtil.getPath() + "demo" + File.separator + "imageRead.xlsx"; ArrayList
imageDataList = new ArrayList (); ImageDataReadListener imageDataReadListener = new ImageDataReadListener(imageDataList); File imageFile = new File(fileName); InputStream in = new FileInputStream(imageFile); EasyExcel.readImage(in, 2, imageDataReadListener); in.close();
}`