parent
6432e6e31b
commit
ed0b6111b2
@ -0,0 +1,66 @@
|
|||||||
|
package org.opsli.modulars.test.entity;
|
||||||
|
|
||||||
|
import com.alibaba.excel.annotation.ExcelProperty;
|
||||||
|
import com.alibaba.excel.annotation.write.style.*;
|
||||||
|
import lombok.Data;
|
||||||
|
import org.apache.poi.ss.usermodel.FillPatternType;
|
||||||
|
import org.opsli.plugins.excel.annotation.CellStyleFormat;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Created Date by 2020/5/9 0009.
|
||||||
|
*
|
||||||
|
* Excel 导入 导出测试类
|
||||||
|
* @author Parker
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@ContentRowHeight(16)
|
||||||
|
@HeadRowHeight(21)
|
||||||
|
@HeadFontStyle(fontName = "Arial",color = 9,fontHeightInPoints = 10)
|
||||||
|
@HeadStyle(fillPatternType = FillPatternType.SOLID_FOREGROUND, fillForegroundColor = 23)
|
||||||
|
@ColumnWidth(22)
|
||||||
|
public class Test implements Serializable {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
/** 名称 */
|
||||||
|
@ExcelProperty(value = "名称",index = 0)
|
||||||
|
@CellStyleFormat
|
||||||
|
private String name;
|
||||||
|
|
||||||
|
/** 编号 */
|
||||||
|
@ExcelProperty(value = "编号",index = 1)
|
||||||
|
@CellStyleFormat
|
||||||
|
private String code;
|
||||||
|
|
||||||
|
/** 年龄 */
|
||||||
|
@ExcelProperty(value = "年龄",index = 2)
|
||||||
|
@CellStyleFormat
|
||||||
|
private Integer age;
|
||||||
|
|
||||||
|
/** 性别 */
|
||||||
|
@ExcelProperty(value = "性别",index = 3)
|
||||||
|
@CellStyleFormat
|
||||||
|
private Integer sex;
|
||||||
|
|
||||||
|
/** 金额 */
|
||||||
|
// @ExcelProperty(value = "金额",index = 4)
|
||||||
|
// @CellStyleFormat
|
||||||
|
private Double amt;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 构造函数
|
||||||
|
*/
|
||||||
|
public Test() {
|
||||||
|
|
||||||
|
}
|
||||||
|
public Test(String name, String code, Integer age, Integer sex, Double amt) {
|
||||||
|
this.name = name;
|
||||||
|
this.code = code;
|
||||||
|
this.age = age;
|
||||||
|
this.sex = sex;
|
||||||
|
this.amt = amt;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,28 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||||
|
<parent>
|
||||||
|
<artifactId>opsli-plugins</artifactId>
|
||||||
|
<groupId>org.opsliframework.boot</groupId>
|
||||||
|
<version>1.0.0</version>
|
||||||
|
</parent>
|
||||||
|
|
||||||
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
<artifactId>opsli-plugins-excel</artifactId>
|
||||||
|
<version>${project.parent.version}</version>
|
||||||
|
|
||||||
|
<dependencies>
|
||||||
|
|
||||||
|
<!-- EasyExcel -->
|
||||||
|
<!-- https://mvnrepository.com/artifact/com.alibaba/easyexcel -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.alibaba</groupId>
|
||||||
|
<artifactId>easyexcel</artifactId>
|
||||||
|
<version>2.2.6</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
|
||||||
|
</dependencies>
|
||||||
|
|
||||||
|
</project>
|
@ -0,0 +1,24 @@
|
|||||||
|
package org.opsli.plugins.excel.annotation;
|
||||||
|
|
||||||
|
import org.apache.poi.ss.usermodel.IndexedColors;
|
||||||
|
|
||||||
|
import java.lang.annotation.*;
|
||||||
|
/**
|
||||||
|
* Created Date by 2020/5/9 0009.
|
||||||
|
*
|
||||||
|
* @author Parker
|
||||||
|
*/
|
||||||
|
@Documented
|
||||||
|
@Retention(RetentionPolicy.RUNTIME)
|
||||||
|
@Target(ElementType.FIELD)
|
||||||
|
public @interface CellFontFormat {
|
||||||
|
|
||||||
|
String fontName() default "Arial";
|
||||||
|
|
||||||
|
short fontHeightInPoints() default 10;
|
||||||
|
|
||||||
|
IndexedColors fontColor() default IndexedColors.BLACK;
|
||||||
|
|
||||||
|
boolean bold() default false;
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,40 @@
|
|||||||
|
package org.opsli.plugins.excel.annotation;
|
||||||
|
|
||||||
|
import org.apache.poi.ss.usermodel.HorizontalAlignment;
|
||||||
|
import org.apache.poi.ss.usermodel.IndexedColors;
|
||||||
|
|
||||||
|
import java.lang.annotation.*;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Created Date by 2020/5/9 0009.
|
||||||
|
*
|
||||||
|
* Excel 样式注解
|
||||||
|
*
|
||||||
|
* @author parker
|
||||||
|
*/
|
||||||
|
@Documented
|
||||||
|
@Retention(RetentionPolicy.RUNTIME)
|
||||||
|
@Target(ElementType.FIELD)
|
||||||
|
public @interface CellStyleFormat {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 水平居中方式 默认左居中
|
||||||
|
* @see HorizontalAlignment
|
||||||
|
*/
|
||||||
|
HorizontalAlignment horizontalAlignment() default HorizontalAlignment.LEFT;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 字体设置
|
||||||
|
* @see org.apache.poi.xssf.usermodel.XSSFFont
|
||||||
|
* @see org.apache.poi.hssf.usermodel.HSSFFont
|
||||||
|
*/
|
||||||
|
CellFontFormat cellFont() default @CellFontFormat();
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 背景颜色
|
||||||
|
* @see IndexedColors
|
||||||
|
*/
|
||||||
|
IndexedColors fillBackgroundColor() default IndexedColors.WHITE;
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,22 @@
|
|||||||
|
package org.opsli.plugins.excel.exception;
|
||||||
|
|
||||||
|
import org.opsli.common.base.msg.BaseMsg;
|
||||||
|
import org.opsli.common.exception.ServiceException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Created Date by 2020/5/9 0009.
|
||||||
|
*
|
||||||
|
* Excel 异常类
|
||||||
|
* @author Parker
|
||||||
|
*/
|
||||||
|
public class ExcelPluginException extends ServiceException {
|
||||||
|
|
||||||
|
public ExcelPluginException(Integer code, String errorMessage) {
|
||||||
|
super(code, errorMessage);
|
||||||
|
}
|
||||||
|
|
||||||
|
public ExcelPluginException(BaseMsg msg) {
|
||||||
|
super(msg);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,60 @@
|
|||||||
|
package org.opsli.plugins.excel.factory;
|
||||||
|
|
||||||
|
import com.alibaba.excel.ExcelWriter;
|
||||||
|
import com.alibaba.excel.metadata.BaseRowModel;
|
||||||
|
import com.alibaba.excel.metadata.Sheet;
|
||||||
|
import com.alibaba.excel.support.ExcelTypeEnum;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.io.OutputStream;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* ExcelWriterFactory
|
||||||
|
*
|
||||||
|
* @author parker
|
||||||
|
*/
|
||||||
|
public class ExcelWriterFactory extends ExcelWriter {
|
||||||
|
private OutputStream outputStream;
|
||||||
|
private int sheetNo = 1;
|
||||||
|
|
||||||
|
public ExcelWriterFactory(OutputStream outputStream, ExcelTypeEnum typeEnum) {
|
||||||
|
super(outputStream, typeEnum);
|
||||||
|
this.outputStream = outputStream;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ExcelWriterFactory write(List<?> list, String sheetName,
|
||||||
|
BaseRowModel object) {
|
||||||
|
this.sheetNo++;
|
||||||
|
try {
|
||||||
|
Sheet sheet = new Sheet(sheetNo, 0, object.getClass());
|
||||||
|
sheet.setSheetName(sheetName);
|
||||||
|
this.write(list, sheet);
|
||||||
|
} catch (Exception ex) {
|
||||||
|
try {
|
||||||
|
outputStream.flush();
|
||||||
|
} catch (IOException e) {
|
||||||
|
//do something
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void finish() {
|
||||||
|
super.finish();
|
||||||
|
try {
|
||||||
|
outputStream.flush();
|
||||||
|
} catch (IOException e) {
|
||||||
|
//do something
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void close(){
|
||||||
|
try {
|
||||||
|
outputStream.close();
|
||||||
|
} catch (IOException e) {
|
||||||
|
//do something
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,37 @@
|
|||||||
|
package org.opsli.plugins.excel.msg;
|
||||||
|
|
||||||
|
import org.opsli.common.base.msg.BaseMsg;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @BelongsProject: opsli-boot
|
||||||
|
* @BelongsPackage: org.opsli.plugins.mail.msg
|
||||||
|
* @Author: Parker
|
||||||
|
* @CreateTime: 2020-09-13 19:54
|
||||||
|
* @Description: Redis消息
|
||||||
|
*/
|
||||||
|
public enum ExcelMsg implements BaseMsg {
|
||||||
|
|
||||||
|
/** Excel 异常 */
|
||||||
|
EXCEPTION_FILE_FORMAT(90000,"文件格式错误!"),
|
||||||
|
EXCEPTION_CREATE_ERROR(90000,"创建文件失败!"),
|
||||||
|
;
|
||||||
|
|
||||||
|
|
||||||
|
private int code;
|
||||||
|
private String message;
|
||||||
|
|
||||||
|
ExcelMsg(int code, String message){
|
||||||
|
this.code = code;
|
||||||
|
this.message = message;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Integer getCode() {
|
||||||
|
return this.code;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getMessage() {
|
||||||
|
return this.message;
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in new issue