JPoi


License

License

GroupId

GroupId

com.github.linyuzai
ArtifactId

ArtifactId

jpoi
Last Version

Last Version

0.5.3
Release Date

Release Date

Type

Type

jar
Description

Description

JPoi
JPoi
Project URL

Project URL

https://github.com/Linyuzai/jpoi
Source Code Management

Source Code Management

https://github.com/Linyuzai/jpoi

Download jpoi

How to add to project

<!-- https://jarcasting.com/artifacts/com.github.linyuzai/jpoi/ -->
<dependency>
    <groupId>com.github.linyuzai</groupId>
    <artifactId>jpoi</artifactId>
    <version>0.5.3</version>
</dependency>
// https://jarcasting.com/artifacts/com.github.linyuzai/jpoi/
implementation 'com.github.linyuzai:jpoi:0.5.3'
// https://jarcasting.com/artifacts/com.github.linyuzai/jpoi/
implementation ("com.github.linyuzai:jpoi:0.5.3")
'com.github.linyuzai:jpoi:jar:0.5.3'
<dependency org="com.github.linyuzai" name="jpoi" rev="0.5.3">
  <artifact name="jpoi" type="jar" />
</dependency>
@Grapes(
@Grab(group='com.github.linyuzai', module='jpoi', version='0.5.3')
)
libraryDependencies += "com.github.linyuzai" % "jpoi" % "0.5.3"
[com.github.linyuzai/jpoi "0.5.3"]

Dependencies

runtime (7)

Group / Artifact Type Version
org.apache.poi : poi jar 4.1.0
org.apache.poi : poi-ooxml jar 4.1.0
org.apache.poi : poi-ooxml-schemas jar 4.1.0
org.apache.poi : poi-scratchpad jar 4.1.0
xerces : xercesImpl jar 2.12.0
com.squareup.okhttp3 : okhttp jar 3.12.0
org.apache.httpcomponents : httpclient jar 4.5.10

Project Modules

There are no modules declared in this project.

jpoi

依赖

implementation 'com.github.linyuzai:jpoi:0.1.0'

基本用法

JExcel.xlsx().setWriteAdapter(WriteAdapter).write().to(File/OutputStream);//

Object v = JExcel.xlsx(InputStream).setReadAdapter(ReadAdapter).read().getValue();//

支持用法

JExcel.xlsx().data(List...).write().to(File/OutputStream);//写类

List<List<Class>> v = JExcel.xlsx(InputStream).target(Class).read().getValue();//读类

List<List<Map<String, Object>>> v = JExcel.xlsx(InputStream).toMap().read().getValue();//读map

List<List<List<Object>>> v = JExcel.xlsx(InputStream).direct().read().getValue();//读list

全部用法

JExcel
      .xls()//HSSFWorkbook
      .xlsx()//XSSFWorkbook
      .sxlsx()//SXSSFWorkbook
      .data()//list bean
      .setWriteAdapter()//自定义WriteAdapter
      .addPoiListener()//poi监听器
      .addValueConverter()//value转换器
      .setValueSetter()//value写入poi的支持类
      .write()//执行写入
      .to();//输出

JExcel
      .xls(InputStream)//HSSFWorkbook
      .xlsx(InputStream)//XSSFWorkbook
      .sxlsx(InputStream)//自定义Sax写法,暂不完善,无法使用
      .target()//转成bean
      .toMap()//转成map
      .direct()//转成list
      .setReadAdapter()//自定义ReadAdapter
      .addPoiListener()//poi监听器
      .addValueConverter()//value转换器
      .setValueGetter()//poi读取value的支持类
      .read()//执行读取
      .getValue();//获得值

注解加类写

@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface JExcelSheetWriter {
    /**
     * @return sheet名称
     */
    String name() default "";

    /**
     * @return 是否只处理添加了注解的字段
     */
    @Deprecated
    boolean annotationOnly() default true;

    /**
     * @return 样式
     */
    JExcelRowStyle style() default @JExcelRowStyle;
}
@Target({ElementType.METHOD, ElementType.FIELD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface JExcelCellWriter {
    /**
     * @return 每一列的标题
     */
    String title() default "";

    /**
     * @return value转换器
     */
    Class<? extends ValueConverter> valueConverter() default ValueConverter.class;

    /**
     * @return 是否自适应列宽
     */
    boolean autoSize() default true;

    /**
     * @return 指定宽度
     */
    int width() default 0;

    /**
     * @return 排序
     */
    int order() default Integer.MAX_VALUE;

    /**
     * @return 作为对应字段的注释
     */
    String commentOfField() default "";

    /**
     * @return 作为对应index列的注释
     */
    int commentOfIndex() default -1;

    /**
     * @return 作为对应字段的图片
     */
    String pictureOfFiled() default "";

    /**
     * @return 作为对应index的图片
     */
    int pictureOfIndex() default -1;

    @Deprecated
    String standbyFor() default "";

    /**
     * @return 样式
     */
    JExcelCellStyle style() default @JExcelCellStyle;
}
JExcel.xlsx().data(List...).write().to(File/OutputStream);//写类

注解加类读

@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface JExcelSheetReader {

    @Deprecated
    String name() default "";

    /**
     * @return 是否只处理添加了注解的字段
     */
    @Deprecated
    boolean annotationOnly() default true;

    /**
     * @return 是否转成map
     */
    boolean toMap() default false;
}
@Target({ElementType.METHOD, ElementType.FIELD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface JExcelCellReader {
    /**
     * @return 每一列的标题
     */
    String title() default "";

    /**
     * @return value转换器
     */
    Class<? extends ValueConverter> valueConverter() default ValueConverter.class;

    @Deprecated
    int index() default -1;

    /**
     * @return 作为对应字段的注释
     */
    String commentOfField() default "";

    /**
     * @return 作为对应index列的注释
     */
    int commentOfIndex() default -1;

    /**
     * @return 作为对应字段的图片
     */
    String pictureOfFiled() default "";

    /**
     * @return 作为对应index的图片
     */
    int pictureOfIndex() default -1;
}
List<List<Class>> v = JExcel.xlsx(InputStream).target(Class).read().getValue();//读类

注意事项

  • commentOfField commentOfIndex pictureOfFiled pictureOfIndex只用于支持一个单元格内的多个数据(内容,注释,图片)对应bean的多个字段,如果只想写入一个值或读取一个值,请直接设置ValueConverter

Versions

Version
0.5.3
0.3.0
0.1.0