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

org.treeleafj.xmax.export.Exporter Maven / Gradle / Ivy

The newest version!
package org.treeleafj.xmax.export;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.treeleafj.xmax.export.format.Format;
import org.treeleafj.xmax.export.format.FormatResolver;
import org.treeleafj.xmax.export.format.FormatResolverResult;
import org.treeleafj.xmax.export.format.SheetInfo;

import java.io.OutputStream;
import java.util.List;
import java.util.Map;

/**
 * 针对excel/csv等导出工具的一个高层抽象,提供数据导出成excel/csv等功能
 * Created by leaf on 2017/4/10.
 */
public class Exporter {

    private Logger log = LoggerFactory.getLogger(Exporter.class);

    private FormatResolver formatResolver = new FormatResolver();

    /**
     * 模板格式
     */
    private Format format;

    /**
     * 要导出的数据,如果是pageInfo.getRows(),记得要找个map包装起来
     */
    private Map data;

    /**
     * 执行导出
     *
     * @param out 输出位置
     */
    public void export(OutputStream out) {
        List sheetInfos = this.format.resolveOriginalInfo();
        List resolverResults = formatResolver.resolveRows(sheetInfos);

        long t = System.currentTimeMillis();
        this.format.getOutput().write(out, sheetInfos, resolverResults, this.data);
        log.info("导出完成,用时{}毫秒", System.currentTimeMillis() - t);
    }

    public Format getFormat() {
        return format;
    }

    public void setFormat(Format format) {
        this.format = format;
    }

    public Map getData() {
        return data;
    }

    public void setData(Map data) {
        this.data = data;
    }

    public FormatResolver getFormatResolver() {
        return formatResolver;
    }

    public void setFormatResolver(FormatResolver formatResolver) {
        this.formatResolver = formatResolver;
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy