diff --git a/src/main/java/com/alibaba/excel/annotation/write/style/ImagePosition.java b/src/main/java/com/alibaba/excel/annotation/write/style/ImagePosition.java deleted file mode 100644 index 8a401122..00000000 --- a/src/main/java/com/alibaba/excel/annotation/write/style/ImagePosition.java +++ /dev/null @@ -1,61 +0,0 @@ -package com.alibaba.excel.annotation.write.style; - - -import org.apache.poi.ss.usermodel.ClientAnchor; - -import java.lang.annotation.ElementType; -import java.lang.annotation.Inherited; -import java.lang.annotation.RetentionPolicy; -import java.lang.annotation.Target; -import java.lang.annotation.Retention; - -/** - * This annotation is used to set the position of a picture. - * See {@link ClientAnchor} - */ - -@Target(ElementType.FIELD) -@Retention(RetentionPolicy.RUNTIME) -@Inherited -public @interface ImagePosition { - - /** - * The x coordinate within the first cell. - */ - int dx1(); - - /** - * The y coordinate within the first cell. - */ - int dy1(); - - /** - * The x coordinate within the second cell. - */ - int dx2(); - - /** - * The y coordinate within the second cell - */ - int dy2(); - - /** - * 0-based column of the first cell. - */ - short col1(); - - /** - * 0-based row of the first cell. - */ - int row1(); - - /** - * 0-based column of the second cell. - */ - short col2(); - - /** - * 0-based row of the second cell. - */ - int row2(); -} diff --git a/src/main/java/com/alibaba/excel/metadata/property/ImagePositionProperty.java b/src/main/java/com/alibaba/excel/metadata/property/ImagePositionProperty.java deleted file mode 100644 index 5bd6fb30..00000000 --- a/src/main/java/com/alibaba/excel/metadata/property/ImagePositionProperty.java +++ /dev/null @@ -1,135 +0,0 @@ -package com.alibaba.excel.metadata.property; - -import com.alibaba.excel.annotation.write.style.ImagePosition; - -/** - * Keep the image position information from an annotation. - * - * @author Pengliang Zhao - */ -public class ImagePositionProperty { - - /** - * The x coordinate within the first cell. - */ - private int dx1; - - /** - * The y coordinate within the first cell. - */ - private int dy1; - - /** - * The x coordinate within the second cell. - */ - private int dx2; - - /** - * The y coordinate within the second cell - */ - private int dy2; - - /** - * 0-based column of the first cell. - */ - private short col1; - - /** - * 0-based row of the first cell. - */ - private int row1; - - /** - * 0-based column of the second cell. - */ - private short col2; - - /** - * 0-based row of the second cell. - */ - private int row2; - - public static ImagePositionProperty build(ImagePosition imagePosition) { - if (imagePosition == null) { - return null; - } - return new ImagePositionProperty(imagePosition.dx1(), imagePosition.dy1(), imagePosition.dx2(), - imagePosition.dy2(), imagePosition.col1(), imagePosition.row1(), imagePosition.col2(), - imagePosition.row2()); - } - - public ImagePositionProperty(int dx1, int dy1, int dx2, int dy2, short col1, int row1, short col2, int row2) { - this.dx1 = dx1; - this.dy1 = dy1; - this.dx2 = dx2; - this.dy2 = dy2; - this.col1 = col1; - this.row1 = row1; - this.col2 = col2; - this.row2 = row2; - } - - public int getDx1() { - return dx1; - } - - public void setDx1(int dx1) { - this.dx1 = dx1; - } - - public int getDy1() { - return dy1; - } - - public void setDy1(int dy1) { - this.dy1 = dy1; - } - - public int getDx2() { - return dx2; - } - - public void setDx2(int dx2) { - this.dx2 = dx2; - } - - public int getDy2() { - return dy2; - } - - public void setDy2(int dy2) { - this.dy2 = dy2; - } - - public short getCol1() { - return col1; - } - - public void setCol1(short col1) { - this.col1 = col1; - } - - public int getRow1() { - return row1; - } - - public void setRow1(int row1) { - this.row1 = row1; - } - - public short getCol2() { - return col2; - } - - public void setCol2(short col2) { - this.col2 = col2; - } - - public int getRow2() { - return row2; - } - - public void setRow2(int row2) { - this.row2 = row2; - } -} diff --git a/src/main/java/com/alibaba/excel/support/ExcelTypeEnum.java b/src/main/java/com/alibaba/excel/support/ExcelTypeEnum.java index fd90e485..7158a69c 100644 --- a/src/main/java/com/alibaba/excel/support/ExcelTypeEnum.java +++ b/src/main/java/com/alibaba/excel/support/ExcelTypeEnum.java @@ -48,11 +48,8 @@ public enum ExcelTypeEnum { } // If there is a password, use the FileMagic first if (!StringUtils.isEmpty(readWorkbook.getPassword())) { - BufferedInputStream bufferedInputStream = new BufferedInputStream(new FileInputStream(file)); - try { + try (BufferedInputStream bufferedInputStream = new BufferedInputStream(new FileInputStream(file))) { return recognitionExcelType(bufferedInputStream); - } finally { - bufferedInputStream.close(); } } // Use the name to determine the type @@ -63,11 +60,8 @@ public enum ExcelTypeEnum { return XLS; } if (StringUtils.isEmpty(readWorkbook.getPassword())) { - BufferedInputStream bufferedInputStream = new BufferedInputStream(new FileInputStream(file)); - try { + try (BufferedInputStream bufferedInputStream = new BufferedInputStream(new FileInputStream(file))) { return recognitionExcelType(bufferedInputStream); - } finally { - bufferedInputStream.close(); } } } diff --git a/src/test/java/com/alibaba/easyexcel/test/demo/write/ImageDataWithAnnotation.java b/src/test/java/com/alibaba/easyexcel/test/demo/write/ImageDataWithAnnotation.java index d76715f6..a7bd7caa 100644 --- a/src/test/java/com/alibaba/easyexcel/test/demo/write/ImageDataWithAnnotation.java +++ b/src/test/java/com/alibaba/easyexcel/test/demo/write/ImageDataWithAnnotation.java @@ -7,7 +7,6 @@ import java.net.URL; import com.alibaba.excel.annotation.ExcelProperty; import com.alibaba.excel.annotation.write.style.ColumnWidth; import com.alibaba.excel.annotation.write.style.ContentRowHeight; -import com.alibaba.excel.annotation.write.style.ImagePosition; import com.alibaba.excel.converters.string.StringImageConverter; import lombok.Data; @@ -20,23 +19,18 @@ import lombok.Data; @ContentRowHeight(100) @ColumnWidth(100 / 8) public class ImageDataWithAnnotation { - @ImagePosition(dx1 = 0, dy1 = 0, dx2 = 0, dy2 = 0, col1 = 0, row1 = 3, col2 = 1, row2 = 4) private File file; - @ImagePosition(dx1 = 0, dy1 = 0, dx2 = 0, dy2 = 0, col1 = 0, row1 = 1, col2 = 2, row2 = 2) private InputStream inputStream; /** * 如果string类型 必须指定转换器,string默认转换成string */ @ExcelProperty(converter = StringImageConverter.class) - @ImagePosition(dx1 = 0, dy1 = 0, dx2 = 0, dy2 = 0, col1 = 2, row1 = 1, col2 = 3, row2 = 3) private String string; - @ImagePosition(dx1 = 0, dy1 = 0, dx2 = 0, dy2 = 0, col1 = 3, row1 = 1, col2 = 4, row2 = 5) private byte[] byteArray; /** * 根据url导出 * * @since 2.1.1 */ - @ImagePosition(dx1 = 0, dy1 = 0, dx2 = 0, dy2 = 0, col1 = 4, row1 = 1, col2 = 5, row2 = 2) private URL url; } diff --git a/src/test/java/com/alibaba/easyexcel/test/demo/write/WriteTest.java b/src/test/java/com/alibaba/easyexcel/test/demo/write/WriteTest.java index 80cd631f..ced2ffde 100644 --- a/src/test/java/com/alibaba/easyexcel/test/demo/write/WriteTest.java +++ b/src/test/java/com/alibaba/easyexcel/test/demo/write/WriteTest.java @@ -9,12 +9,6 @@ import java.util.HashSet; import java.util.List; import java.util.Set; -import org.apache.poi.ss.usermodel.FillPatternType; -import org.apache.poi.ss.usermodel.IndexedColors; -import org.apache.poi.xssf.streaming.SXSSFSheet; -import org.junit.Ignore; -import org.junit.Test; - import com.alibaba.easyexcel.test.util.TestFileUtil; import com.alibaba.excel.EasyExcel; import com.alibaba.excel.ExcelWriter; @@ -33,6 +27,12 @@ import com.alibaba.excel.write.metadata.style.WriteFont; import com.alibaba.excel.write.style.HorizontalCellStyleStrategy; import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy; +import org.apache.poi.ss.usermodel.FillPatternType; +import org.apache.poi.ss.usermodel.IndexedColors; +import org.apache.poi.xssf.streaming.SXSSFSheet; +import org.junit.Ignore; +import org.junit.Test; + /** * 写的常见写法 * @@ -257,39 +257,6 @@ public class WriteTest { } } - /** - * 使用注解设置图片位置,然后导出 - *

- * 1. 创建excel对应的实体对象 参照{@link ImageData} - *

- * 2. 直接写即可 - */ - @Test - public void imageWriteWithAnnotation() throws Exception { - String fileName = TestFileUtil.getPath() + "imageWriteWithAnnotation" + System.currentTimeMillis() + ".xlsx"; - // 如果使用流 记得关闭 - InputStream inputStream = null; - try { - List list = new ArrayList(); - ImageDataWithAnnotation imageData = new ImageDataWithAnnotation(); - list.add(imageData); - String imagePath = TestFileUtil.getPath() + "converter" + File.separator + "img.jpg"; - // 放入五种类型的图片 实际使用只要选一种即可 - imageData.setByteArray(FileUtils.readFileToByteArray(new File(imagePath))); - imageData.setFile(new File(imagePath)); - imageData.setString(imagePath); - inputStream = FileUtils.openInputStream(new File(imagePath)); - imageData.setInputStream(inputStream); - imageData.setUrl(new URL( - "https://raw.githubusercontent.com/alibaba/easyexcel/master/src/test/resources/converter/img.jpg")); - EasyExcel.write(fileName, ImageDataWithAnnotation.class).sheet().doWrite(list); - } finally { - if (inputStream != null) { - inputStream.close(); - } - } - } - /** * 根据模板写入 *