zoukankan      html  css  js  c++  java
  • 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();//清理资源
    			}
    		}
    	}
    
    }
    
     
  • 相关阅读:
    5.Spring高级装配(根据profile的激活状态决定使用的环境) 以及 条件化 Bean
    4.SpringJunit4ClassRunner
    3.Spring配置可选方案
    2.Spring容器bean的生命周期
    1.使用spring上下文容纳你的Bean
    maven 打包跳过 Junit test
    HTML5中meta name="viewport"
    二、JavaScript this
    VIM_插件
    VBS_DO...Loop
  • 原文地址:https://www.cnblogs.com/qq1988627/p/6606938.html
Copyright © 2011-2022 走看看