Browse Source

移除多余代码

developing
Jiaju Zhuang 4 years ago
parent
commit
54c9c36a64
  1. 61
      src/main/java/com/alibaba/excel/annotation/write/style/ImagePosition.java
  2. 135
      src/main/java/com/alibaba/excel/metadata/property/ImagePositionProperty.java
  3. 10
      src/main/java/com/alibaba/excel/support/ExcelTypeEnum.java
  4. 6
      src/test/java/com/alibaba/easyexcel/test/demo/write/ImageDataWithAnnotation.java
  5. 45
      src/test/java/com/alibaba/easyexcel/test/demo/write/WriteTest.java

61
src/main/java/com/alibaba/excel/annotation/write/style/ImagePosition.java

@ -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();
}

135
src/main/java/com/alibaba/excel/metadata/property/ImagePositionProperty.java

@ -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;
}
}

10
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 there is a password, use the FileMagic first
if (!StringUtils.isEmpty(readWorkbook.getPassword())) { if (!StringUtils.isEmpty(readWorkbook.getPassword())) {
BufferedInputStream bufferedInputStream = new BufferedInputStream(new FileInputStream(file)); try (BufferedInputStream bufferedInputStream = new BufferedInputStream(new FileInputStream(file))) {
try {
return recognitionExcelType(bufferedInputStream); return recognitionExcelType(bufferedInputStream);
} finally {
bufferedInputStream.close();
} }
} }
// Use the name to determine the type // Use the name to determine the type
@ -63,11 +60,8 @@ public enum ExcelTypeEnum {
return XLS; return XLS;
} }
if (StringUtils.isEmpty(readWorkbook.getPassword())) { if (StringUtils.isEmpty(readWorkbook.getPassword())) {
BufferedInputStream bufferedInputStream = new BufferedInputStream(new FileInputStream(file)); try (BufferedInputStream bufferedInputStream = new BufferedInputStream(new FileInputStream(file))) {
try {
return recognitionExcelType(bufferedInputStream); return recognitionExcelType(bufferedInputStream);
} finally {
bufferedInputStream.close();
} }
} }
} }

6
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.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth; import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.alibaba.excel.annotation.write.style.ContentRowHeight; import com.alibaba.excel.annotation.write.style.ContentRowHeight;
import com.alibaba.excel.annotation.write.style.ImagePosition;
import com.alibaba.excel.converters.string.StringImageConverter; import com.alibaba.excel.converters.string.StringImageConverter;
import lombok.Data; import lombok.Data;
@ -20,23 +19,18 @@ import lombok.Data;
@ContentRowHeight(100) @ContentRowHeight(100)
@ColumnWidth(100 / 8) @ColumnWidth(100 / 8)
public class ImageDataWithAnnotation { public class ImageDataWithAnnotation {
@ImagePosition(dx1 = 0, dy1 = 0, dx2 = 0, dy2 = 0, col1 = 0, row1 = 3, col2 = 1, row2 = 4)
private File file; private File file;
@ImagePosition(dx1 = 0, dy1 = 0, dx2 = 0, dy2 = 0, col1 = 0, row1 = 1, col2 = 2, row2 = 2)
private InputStream inputStream; private InputStream inputStream;
/** /**
* 如果string类型 必须指定转换器string默认转换成string * 如果string类型 必须指定转换器string默认转换成string
*/ */
@ExcelProperty(converter = StringImageConverter.class) @ExcelProperty(converter = StringImageConverter.class)
@ImagePosition(dx1 = 0, dy1 = 0, dx2 = 0, dy2 = 0, col1 = 2, row1 = 1, col2 = 3, row2 = 3)
private String string; private String string;
@ImagePosition(dx1 = 0, dy1 = 0, dx2 = 0, dy2 = 0, col1 = 3, row1 = 1, col2 = 4, row2 = 5)
private byte[] byteArray; private byte[] byteArray;
/** /**
* 根据url导出 * 根据url导出
* *
* @since 2.1.1 * @since 2.1.1
*/ */
@ImagePosition(dx1 = 0, dy1 = 0, dx2 = 0, dy2 = 0, col1 = 4, row1 = 1, col2 = 5, row2 = 2)
private URL url; private URL url;
} }

45
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.List;
import java.util.Set; 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.easyexcel.test.util.TestFileUtil;
import com.alibaba.excel.EasyExcel; import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.ExcelWriter; 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.HorizontalCellStyleStrategy;
import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy; 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 {
} }
} }
/**
* 使用注解设置图片位置,然后导出
* <p>
* 1. 创建excel对应的实体对象 参照{@link ImageData}
* <p>
* 2. 直接写即可
*/
@Test
public void imageWriteWithAnnotation() throws Exception {
String fileName = TestFileUtil.getPath() + "imageWriteWithAnnotation" + System.currentTimeMillis() + ".xlsx";
// 如果使用流 记得关闭
InputStream inputStream = null;
try {
List<ImageDataWithAnnotation> list = new ArrayList<ImageDataWithAnnotation>();
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();
}
}
}
/** /**
* 根据模板写入 * 根据模板写入
* <p> * <p>

Loading…
Cancel
Save