• POI导出数据相关的辅助类


    package zxc.util.ieport.poi;
    
    import java.io.ByteArrayInputStream;
    import java.io.ByteArrayOutputStream;
    import java.io.IOException;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    import java.util.Map;
    
    import org.springframework.util.CachingMapDecorator;
    
    import zxc.exceptions.BaseRuntimeException;
    import zxc.model.support.FileBaseBean;
    import zxc.model.support.IeudBean;
    import zxc.util.ieport.IExport;
    
    /**
     * 这是一个组件工作
     * 
     * @author KHT
     * 
     */
    public class POIExcelFactory {
    
    	private static POIExcelFactory	excelFactory		= new POIExcelFactory();
    
    	public static final String		DEFAULT_EXPORT_KEY	= "DEFAULT_EXPORT_KEY";
    
    	@SuppressWarnings("unchecked")
    	private Map<String, IExport>	exportContainer		= new CachingMapDecorator() {
    															@Override
    															protected Object create(Object key) {
    																return new DefaultExcelExport();
    															}
    
    														};
    
    	protected POIExcelFactory() {
    		super();
    	}
    
    	public static POIExcelFactory getFactory() {
    		return excelFactory;
    	}
    
    	public IExport getDefaultExport() {
    		return this.getExport(DEFAULT_EXPORT_KEY);
    	}
    
    	public IExport getExport(String exportKey) {
    		return this.exportContainer.get(exportKey);
    	}
    
    	public void processExcelExport(FileBaseBean model) {
    		//需要导出
    		IeudBean ieudBean = model.getIeudBean();
    		if (ieudBean.getExport() != null && ieudBean.getExport()) {
    			POIWorkContext workContext = POIWorkContext.getCurrentContext();
    			workContext.initWorkContext(model);
    
    			this.getDefaultExport().exportData(workContext.getCurrentListData());
    
    			//如果采用一次性导出,或者在多次导出的情况下,处于完成状态时,则做最后处理
    			if (ieudBean.getOneTimeExport() || ieudBean.getExportCompleted()) {
    				ByteArrayOutputStream arrayOutputStream = new ByteArrayOutputStream(4069);
    				try {
    					workContext.getCurrentWorkbook().write(arrayOutputStream);
    				} catch (IOException e) {
    					throw new BaseRuntimeException("导出文件失败");
    				}
    				ieudBean.setDownLoadStream(new ByteArrayInputStream(arrayOutputStream.toByteArray()));
    				ieudBean.setContentType("application/vnd.ms-excel");
    				ieudBean.setContentDisposition("risen-zxc-" + new SimpleDateFormat("yyyy-MM-dd-hh-mm-ss").format(new Date()) + ".xls");
    				workContext.clearCurrentContext();//清理资源
    			}
    		}
    	}
    
    }
    
     
  • 相关阅读:
    习题解答chapter-01
    Java-chapter-01 菜鸟初见Java
    ijkdemo
    1027
    avformat_seek_file
    pla
    android1010横屏等
    文件浏览对话框
    智能指针处理---bo
    Js为Dom元素绑定事件须知
  • 原文地址:https://www.cnblogs.com/qq1988627/p/6606938.html
Copyright © 2020-2023  润新知