springboot - 포이 --- 패키지 주석 가져 오기 및 공식의 수출

이 데모 패키지는 개체 유형 주석 POI 가져 오기 프로젝트 프레임 워크 springboot 항목을 수출을 기반으로!

간단하게 초보자를 제공하기 위해 편의를 가져다 희망이 데모에 관한 지식을 설명!

  1. POI - 엑셀 기본 조작 (도구)
  2. 사용의 사용자 정의 주석
  3. 글로벌 예외 잡은 정의
  4. jkd1.8 새로운 기능 : 람다 식, 함수, 인터페이스 등
  5. 통일 참조 포장
  6. 고추 ...
  7. 초보자를위한 더 적합 ~

이 복잡한 엑셀 엑셀 템플릿의 정의는, 단지 요구 사항을 충족하지 않는, 가장 간단한 가져 오기 및 내보내기 엑셀에 적용 할 수있는 것은 아니며, 그 자체를 변경 -
엑셀 도구를 제공에 대해 대략 말하기!

수출 :

    /**
     * 导出模版
     *
     * @param excelName excel 名称
     * @param clazz     数据集
     * @param response  使用response可以导出到浏览器
     * @param <T>
     * @return
     */
    public static <T> Boolean exportTemplate(String excelName, Class<T> clazz, HttpServletResponse response)

    /**
     * 导出模版
     *
     * @param excelName excel 名称
     * @param clazz     数据集
     * @param type      excel 类型
     * @param response  使用response可以导出到浏览器
     * @param <T>
     * @return
     */
    public static <T> Boolean exportTemplate(String excelName, Class<T> clazz, Type type, HttpServletResponse response)

    /**
     * excel 导出 (对象)
     *
     * @param excelName excel 名称
     * @param list      数据集
     * @param clazz     反射clazz
     * @param response  使用response可以导出到浏览器
     * @param <T>
     * @return
     */
    public static <T> Boolean exportExcel(String excelName, List<T> list, Class<T> clazz, HttpServletResponse response)

    /**
     * excel 导出 (对象)
     *
     * @param excelName excel 名称
     * @param list      数据集
     * @param clazz     反射clazz
     * @param type      excel 类型
     * @param response  使用response可以导出到浏览器
     * @param <T>
     * @return
     */
    public static <T> Boolean exportExcel(String excelName, List<T> list, Class<T> clazz, Type type, HttpServletResponse response)

    /**
     * excel 导出 (Map)
     *
     * @param excelName excel 名称
     * @param clazz     反射clazz
     * @param list      数据集
     * @param response  使用response可以导出到浏览器
     * @param <T>
     * @return
     */
    public static <T> Boolean exportExcel(String excelName, Class<T> clazz, List<Map<String, Object>> list, HttpServletResponse response)

    /**
     * excel 导出 (Map)
     *
     * @param excelName excel 名称
     * @param clazz
     * @param list      数据集
     * @param type      excel 类型
     * @param response  使用response可以导出到浏览器
     * @param <T>
     * @return
     */
    public static <T> Boolean exportExcel(String excelName, Class<T> clazz, List<Map<String, Object>> list, Type type, HttpServletResponse response)

가져 오기 :

    /**
     * 传入文本对象输出list集合(导入)
     *
     * @param file  流文件
     * @param clazz 要转义成的类对象
     * @return
     */
    public static <T> List<T> importExcel(MultipartFile file, Class<T> clazz)

엑셀 주석 클래스는 몇 가지 간단한 결정 프로세스를 제공합니다 :

/**
 * <p>
 * excel 注解
 * </p>
 *
 * @author <a href="mailto:[email protected]">xiaoyang</a>
 * @version V0.0.1
 * @date 2019年09月10日
 */
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.FIELD})
public @interface Excel {

    /**
     * 表头中文
     *
     * @return
     */
    String titleName();

    /**
     * 列宽
     *
     * @return
     */
    int titleSize() default 30;

    /**
     * 字段顺序  正序
     *
     * @return
     */
    int orderNum();

    /**
     * 是否允许空值 ,默认不允许
     * <p>
     * false:不允许   true :允许
     *
     * @return
     */
    boolean empty() default false;

    /**
     * 内部类
     *
     * @return
     */
    CellType type() default @CellType;

    /**
     * 设置格式
     * 默认:
     * 时间:yyyy-MM-dd HH:mm:ss
     * 小数点:两位,四舍五入
     *
     * @return
     */
    @interface CellType {

        TimeType timeType() default TimeType.TIMEF_FORMAT;

        DecimalType decimalType() default DecimalType.two;
    }
}

TimeType 도구 :

/**
 * <p>
 * 日期格式
 * </p>
 *
 * @author <a href="mailto:[email protected]">xiaoyang</a>
 * @version V0.0.1
 * @date 2019年09月20日
 */
public enum TimeType {

    /**
     * yyyy-MM-dd
     */
    DATE_FORMAT("yyyy-MM-dd"),
    /**
     * yyyy-MM
     */
    YEAR_S_MONTH("yyyy-MM"),
    /**
     * yyyyMM
     */
    YEAR_MONTH("yyyyMM"),
    /**
     * yyyy-MM-dd HH:mm:ss
     */
    TIMEF_FORMAT("yyyy-MM-dd HH:mm:ss"),
    /**
     * yyyy-MM-dd HH:mm:ss.SSS
     */
    MSEL_FORMAT("yyyy-MM-dd HH:mm:ss.SSS"),
    /**
     * yyyy年MM月dd日
     */
    ZHCN_DATE_FORMAT("yyyy年MM月dd日"),
    /**
     * yyyy年MM月dd日HH时mm分ss秒
     */
    ZHCN_TIME_FORMAT("yyyy年MM月dd日HH时mm分ss秒"),
    /**
     * yyyy年MM月dd日HH时mm分ss秒SSS毫秒
     */
    ZHCN_MSEL_FORMAT("yyyy年MM月dd日HH时mm分ss秒SSS毫秒"),
    /**
     * yyyyMMdd
     */
    DATE_STR_FORMAT("yyyyMMdd"),
    /**
     * yyyyMMddHHmmss
     */
    TIME_STR_FORMAT("yyyyMMddHHmmss"),
    /**
     * yyyyMMddHHmmssSSS
     */
    MSEL_STR_FORMAT("yyyyMMddHHmmssSSS"),
    /**
     * yyyy-MM-dd HH:mm
     */
    MSEL_MIU_FORMAT("yyyy-MM-dd HH:mm"),
    /**
     * yyyyMMddHH
     */
    MS_MIU_FORMAT("yyyyMMddHH");

    /**
     * 日期格式
     */
    private String timeType;

    /**
     * 日期格式
     *
     * @param timeType
     */
    TimeType(String timeType) {
        this.timeType = timeType;
    }

    /**
     * 获取日期格式
     *
     * @return
     */
    public String getTimeType() {
        return timeType;
    }
}

DecimalType 도구 :

/**
 * <p>
 * 小数点格式
 * </p>
 *
 * @author <a href="mailto:[email protected]">xiaoyang</a>
 * @version V0.0.1
 * @date 2019年09月20日
 */
public enum DecimalType {

    /**
     * 一位
     */
    one(1, "0.0"),
    /**
     * 两位
     */
    two(2, "0.00"),
    /**
     * 三位
     */
    three(3, "0.000"),
    /**
     * 四位
     */
    four(4, "0.0000"),
    /**
     * 五位
     */
    five(5, "0.00000");

    /**
     * 日期格式
     */
    private String decimal;

    private int scale;

    /**
     * 日期格式
     *
     * @param scale
     * @param decimal
     */
    DecimalType(int scale, String decimal) {
        this.scale = scale;
        this.decimal = decimal;
    }

    /**
     * 获取日期格式
     *
     * @return
     */
    public String getDecimal() {
        return decimal;
    }

    /**
     * 获取日期格式
     *
     * @return
     */
    public int getScale() {
        return scale;
    }
}

  첨부 GitHub의 주소 : HTTPS : //github.com/yangqiyue/excel

추천

출처www.cnblogs.com/yangyanrui/p/11591925.html