[alibaba/easyexcel]新增了读图片的特性

2024-05-21 290 views
0

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

    }`

回答

1

感觉没有支持03版呀 这个感觉略坑…… 然后代码有点读 有点方

7

没有excel带图的数据读取呀 怎么搞