diff --git a/easyexcel-core/src/main/java/com/alibaba/excel/analysis/v07/XlsxSaxAnalyser.java b/easyexcel-core/src/main/java/com/alibaba/excel/analysis/v07/XlsxSaxAnalyser.java index c1e9e60b..d287c4fb 100644 --- a/easyexcel-core/src/main/java/com/alibaba/excel/analysis/v07/XlsxSaxAnalyser.java +++ b/easyexcel-core/src/main/java/com/alibaba/excel/analysis/v07/XlsxSaxAnalyser.java @@ -117,7 +117,7 @@ public class XlsxSaxAnalyser implements ExcelReadExecutor { // Reading images if (xlsxReadContext.readWorkbookHolder().getExtraReadSet().contains(CellExtraTypeEnum.IMAGE)) { List drawingsPackagePartList = pkg.getPartsByName( - Pattern.compile("xl/drawings/drawing[0-9]+.xml")); + Pattern.compile("/xl/drawings/drawing[0-9]+.xml")); if (CollectionUtils.isNotEmpty(drawingsPackagePartList)) { for (PackagePart drawingPackagePart : drawingsPackagePartList) { log.info("xx{}", drawingPackagePart); diff --git a/easyexcel-test/src/test/java/com/alibaba/easyexcel/test/temp/Lock2Test.java b/easyexcel-test/src/test/java/com/alibaba/easyexcel/test/temp/Lock2Test.java index db1ead44..5209e69e 100644 --- a/easyexcel-test/src/test/java/com/alibaba/easyexcel/test/temp/Lock2Test.java +++ b/easyexcel-test/src/test/java/com/alibaba/easyexcel/test/temp/Lock2Test.java @@ -17,7 +17,9 @@ import java.util.Map; import com.alibaba.easyexcel.test.demo.write.DemoData; import com.alibaba.easyexcel.test.util.TestFileUtil; import com.alibaba.excel.EasyExcel; +import com.alibaba.excel.enums.CellExtraTypeEnum; import com.alibaba.excel.metadata.data.ReadCellData; +import com.alibaba.excel.support.ExcelTypeEnum; import com.alibaba.excel.util.PositionUtils; import com.alibaba.excel.write.metadata.style.WriteCellStyle; import com.alibaba.excel.write.metadata.style.WriteFont; @@ -52,9 +54,9 @@ public class Lock2Test { File file = new File("/Users/zhuangjiaju/IdeaProjects/easyexcel/src/test/resources/converter/converter07.xlsx"); List list = EasyExcel.read( - "/Users/zhuangjiaju/IdeaProjects/easyexcel/easyexcel-test/target/test-classes" - + "/simpleWrite1674051907397.xlsx") + "/Users/zhuangjiaju/测试数据/imagetest.xlsx") //.useDefaultListener(false) + .extraRead(CellExtraTypeEnum.IMAGE) .sheet(0) .headRowNumber(0).doReadSync(); LOGGER.info("数据:{}", list.size()); diff --git a/easyexcel-test/src/test/java/com/alibaba/easyexcel/test/temp/poi/PoiImageTest.java b/easyexcel-test/src/test/java/com/alibaba/easyexcel/test/temp/poi/PoiImageTest.java new file mode 100644 index 00000000..4845662a --- /dev/null +++ b/easyexcel-test/src/test/java/com/alibaba/easyexcel/test/temp/poi/PoiImageTest.java @@ -0,0 +1,75 @@ +package com.alibaba.easyexcel.test.temp.poi; + +import java.io.FileInputStream; + +import lombok.extern.slf4j.Slf4j; +import org.apache.poi.hssf.usermodel.HSSFPatriarch; +import org.apache.poi.hssf.usermodel.HSSFPicture; +import org.apache.poi.hssf.usermodel.HSSFPictureData; +import org.apache.poi.hssf.usermodel.HSSFShape; +import org.apache.poi.hssf.usermodel.HSSFSheet; +import org.apache.poi.hssf.usermodel.HSSFWorkbook; +import org.apache.poi.xssf.usermodel.XSSFDrawing; +import org.apache.poi.xssf.usermodel.XSSFPicture; +import org.apache.poi.xssf.usermodel.XSSFPictureData; +import org.apache.poi.xssf.usermodel.XSSFShape; +import org.apache.poi.xssf.usermodel.XSSFSheet; +import org.apache.poi.xssf.usermodel.XSSFWorkbook; +import org.junit.jupiter.api.Test; + +/** + * 测试poi + * + * @author Jiaju Zhuang + **/ +@Slf4j +public class PoiImageTest { + + @Test + public void xls() throws Exception { + + FileInputStream fis = new FileInputStream("/Users/zhuangjiaju/测试数据/imagetest.xls"); + HSSFWorkbook workbook = new HSSFWorkbook(fis); + HSSFSheet sheet = workbook.getSheetAt(0); + HSSFPatriarch patriarch = sheet.getDrawingPatriarch(); + + for (HSSFShape shape : patriarch.getChildren()) { + if (shape instanceof HSSFPicture) { + HSSFPicture picture = (HSSFPicture)shape; + HSSFPictureData pictureData = picture.getPictureData(); + byte[] data = pictureData.getData(); + + log.info("图片:{}", data.length); + } + } + + workbook.close(); + fis.close(); + } + + @Test + public void xlsx() throws Exception { + FileInputStream fis = new FileInputStream("/Users/zhuangjiaju/测试数据/imagetest.xlsx"); + XSSFWorkbook workbook = new XSSFWorkbook(fis); + XSSFSheet sheet = workbook.getSheetAt(0); + XSSFDrawing drawing = sheet.getDrawingPatriarch(); + + for (XSSFShape shape : drawing.getShapes()) { + if (shape instanceof XSSFPicture) { + XSSFPicture picture = (XSSFPicture)shape; + XSSFPictureData pictureData = picture.getPictureData(); + byte[] data = pictureData.getData(); + log.info("图片:{}", data.length); + log.info("图片:{}", pictureData.getPictureType()); + log.info("图片:{}", pictureData.getMimeType()); + log.info("图片:{}", pictureData.suggestFileExtension()); + //log.info("图片:{}", pictureData.suggestFileExtension()); + + } + } + + workbook.close(); + fis.close(); + } + +}