All Downloads are FREE. Search and download functionalities are using the official Maven repository.

tgtools.excel.ExportExcel Maven / Gradle / Ivy

package tgtools.excel;


import com.fasterxml.jackson.databind.node.ArrayNode;
import tgtools.excel.listener.ExportListener;
import tgtools.exceptions.APPErrorException;

import java.io.Closeable;
import java.io.File;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.LinkedHashMap;

/**
 * 名  称:
 * 编写者:田径
 * 功  能:
 * 时  间:9:38
 */
public interface ExportExcel extends Closeable {
    public static final String VERSION_EXCEL2003 = "xls";
    public static final String VERSION_EXCEL2007 = "xlsx";


    /**
     * 初始化参数
     *
     * @param pVersion Excel版本 参考 ExportExcel中 VERSION_EXCEL2003 VERSION_EXCEL2007
     *
     * @throws APPErrorException
     */
    void init(String pVersion) throws APPErrorException;
    /**
     * 初始化参数
     *
     * @param pFile Excel文件
     *
     * @throws APPErrorException
     */
    void init(File pFile) throws APPErrorException;

    /**
     * 初始化参数
     *
     * @param pInputStream Excel文件
     * @param pVersion  xls xlsx
     *
     * @throws APPErrorException
     */
    void init(InputStream pInputStream,String pVersion) throws APPErrorException;

    /**
     * 初始化参数
     *
     * @param pBytes Excel文件
     * @param pVersion  xls xlsx
     *
     * @throws APPErrorException
     */
    void init(byte[] pBytes,String pVersion) throws APPErrorException;



    /**
     * 设置自定义监听 可进行功能扩展
     *
     * @param pLitener
     *
     * @throws APPErrorException
     */
    void setLisener(ExportListener pLitener) throws APPErrorException;

    /**
     * 通过json 追加数据到默认"sheet1", 0行表头,1行开始写入数据) 中
     *
     * @param pColumns 列信息  key为列英文 value为别名或中文 Map中key的顺序为excel导出数据的顺序(作为excel表头和json数据匹配中)
     * @param pJson
     *
     * @throws APPErrorException
     */
    void appendData(LinkedHashMap pColumns, ArrayNode pJson) throws APPErrorException;

    /**
     * 通过json 追加数据到默认"sheet1", 0行表头,1行开始写入数据) 中
     *
     * @param pColumns        列信息  key为列英文 value为别名或中文 Map中key的顺序为excel导出数据的顺序(作为excel表头和json数据匹配中)
     * @param pJson
     * @param pIsExportTitle 是否写入表头
     *
     * @throws APPErrorException
     */
    void appendData(LinkedHashMap pColumns, ArrayNode pJson, boolean pIsExportTitle) throws APPErrorException;

    /**
     * 向指定excel追加数据
     *
     * @param pColumns        列信息  key为列英文 value为别名或中文 Map中key的顺序为excel导出数据的顺序(作为excel表头和json数据匹配中)
     * @param pJson          需要追加的数据
     * @param pIsExportTitle 是否写入表头
     * @param pSheetName     excel sheet 名称(可null)
     * @param pSheetIndex    excel 新建sheet时使用的索引
     * @param pDataIndex     (从第几行增加数据,默认是1 即 标题行的下一行)
     *
     * @throws APPErrorException
     */
    void appendData(LinkedHashMap pColumns, ArrayNode pJson, boolean pIsExportTitle, String pSheetName, int pSheetIndex, int pDataIndex) throws APPErrorException;

    /**
     * 获取excel数据 同时 释放excel对象
     *
     * @return 获取 excel 所有内容
     *
     * @throws APPErrorException
     */
    byte[] getBytes() throws APPErrorException;

    /**
     * 获取 Excel 流对象 使用完 请调用 close 方法释放
     *
     * @return 获取 excel流 对象
     *
     * @throws APPErrorException
     */
    OutputStream getOutputStream() throws APPErrorException;

    /**
     * 获取 Excel 对象  使用完 请调用 close 方法释放
     *
     * @return
     */
    Object getExcel();
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy