`
qq1988627
  • 浏览: 107437 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

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();//清理资源
			}
		}
	}

}
 
分享到:
评论

相关推荐

    poi导出根据模板导出excel和简单列表导出excel源码

    这可能是提供的代码库或工具包的名称,其中包含了处理 Excel 导出的类和方法。这个库可能包含了一些通用的辅助函数,如数据转换、样式设置、模板解析等功能,简化了开发者的工作。 总结来说,"poi-excel-handler" ...

    POI导入导出 源代码(java)

    压缩包子文件“poi”可能包含了实现以上功能的Java源代码文件,例如一个主类(可能是`Main.java`)用于启动程序,以及一些辅助类来处理Excel数据和数据库交互。通过分析这些源代码,可以学习到如何实际应用Apache ...

    SpringBoot整合POI导出通用Excel的方法示例

    该示例代码详细地介绍了 SpringBoot 整合 POI 导出通用 Excel 的方法,包括准备工作、自定义注解、定义需要导出的实体、定义导出辅助类和具体的导出方法。 首先,需要在 pom.xml 文件中添加 POI 的依赖,包括 poi-...

    POI Excel导出,我的又一个模板方法

    这篇博客"POI Excel导出,我的又一个模板方法"可能详细介绍了如何使用Apache POI库来创建Excel模板,并进行数据导出。 Apache POI是一个开源项目,它提供了API,使Java开发者能够处理Microsoft Office的二进制文件...

    POI海量导出EXCEL所需jar包和db文件

    在实际应用中,除了POI库,可能还需要其他辅助工具或技术,如数据库连接池(如c3p0、DBCP)来高效地获取数据,以及线程池(如ExecutorService)来并发处理数据,以提高导出效率。 综上所述,Apache POI是一个强大的...

    JAVA Excel模板POI导出并下载

    在"JAVA Excel模板POI导出并下载"的场景中,我们首先需要创建一个Excel模板,这个模板可以包含预设的格式、样式或者数据占位符。例如,你可能有一个模板文件,其中的某些单元格有固定的样式,而其他单元格则留空等待...

    poi导出Excel 照葫芦画瓢

    - **DateUtils.java**:这个文件很可能包含了日期相关的辅助方法。在 POI 中,处理日期数据需要特别注意格式化,因为 Excel 和 Java 对日期的处理方式不同。DateUtils 可能提供了将 Java Date 转换为适合 Excel 的...

    poi导入导出Excel表格的所以jar包

    在Apache POI中,DOM4J可能用于辅助解析和操作XML文档,特别是在处理OOXML格式时。 使用这些jar包,开发者可以实现以下功能: - **导入Excel数据**:读取Excel文件中的数据,可以是单个单元格、整行或者整列,甚至...

    Excel导出poi

    以下是一个简单的使用POI导出Excel的基本步骤: 1. **初始化Workbook**:首先,我们需要创建一个Workbook对象,这将作为Excel文件的容器。对于老版本的Excel(97-2003格式),我们使用HSSFWorkbook;对于新版本的...

    poi导出excel

    ### POI导出Excel知识点详解 #### 一、概述 在Java开发中,Apache POI是一个非常实用且功能强大的库,它允许程序人员通过Java API读取、创建和修改Microsoft Office格式的文件,如Word(*.docx)、Excel(*.xlsx)...

    导出Excel和生成图表.zip

    本教程主要聚焦于使用POI库来导出Excel文件并创建图表,结合了JFreeChart库,这是一个强大的Java图形库,用于生成高质量的统计图表。 首先,让我们深入理解Apache POI。POI提供了HSSF(Horizontally-Scattered ...

    POI 导出Excel

    标题中的“POI导出Excel”指的是Apache POI库在Java中用于读写Microsoft Office文档,特别是Excel文件的功能。Apache POI是一个开源项目,它允许开发者使用Java来创建、修改和显示微软的Office格式文件,如XLS和XLSX...

    java 大数据导出csv小工具

    描述中提到的“java 并发导出数据小工具,支持oracle!”意味着该工具不仅具备处理大数据的能力,还利用Java的并发特性来加速数据导出过程。这可能是通过多线程或多进程的方式实现,使得在导出大数据量时能提高效率。...

    poi最佳实践工具类

    总之,"poi最佳实践工具类"是一个强大的辅助工具,它简化了Java POI的使用,优化了Excel操作的性能,特别是对于基于模板的导入导出,使得在处理大量数据时更加高效和方便。通过合理利用这个工具类,开发者可以专注于...

    java利用POI技术上传&导出Excel表格并保存数据至数据库

    在本教程中,我们将探讨如何利用POI技术来上传和导出Excel表格,并将数据保存到数据库中。这个过程通常分为三个主要步骤:Excel文件的读取、数据处理和数据库交互。 首先,我们需要导入Apache POI的相关库。在Maven...

    poi-ooxml-schemas-3.8,poi-3.8,poi-ooxml jar包合集

    在"poi 3.8"这个压缩包子文件的文件名称列表中,我们可以推测可能包含的是Apache POI 3.8版本的所有相关jar包,除了上述提到的两个之外,可能还包括其他辅助库,如poi-ooxml-lite或poi-ooxml-full,以及相关的文档和...

    POI中文开发文档

    Apache POI 是一个开源项目,隶属于 Apache Software Foundation,它的主要目标是处理 OLE2...无论是简单的数据导出,还是复杂的报表生成,POI 都提供了全面的工具和接口,使得开发者能够轻松地与 Excel 文件进行交互。

    POIutil.rar

    接着,`Demo.java`可能包含一个简单的示例,展示如何调用`PoiUtil`类的方法来导出数据。在实际应用中,开发者可能会从数据库或其他数据源获取数据,然后通过`PoiUtil`的`writeDataToSheet(List&lt;DataRow&gt; dataList, ...

    java导出SPSS格式文件

    - 对于复杂的转换,考虑使用Apache POI(主要用于处理微软Office格式)或其他类似的库,它们可能提供了一些辅助函数来处理数据转换。 6. **错误处理**: - 在编写代码时,一定要考虑错误处理,如数据不匹配、文件...

    poi-tl引擎实现world模板内容替换(支持docx)

    2. **commons-lang3**: Apache Commons Lang是一个实用工具类库,提供了很多Java语言功能的增强,如字符串处理、日期时间操作等,在这里可能是用来辅助处理数据或模板内容。 3. **poi-ooxml-schemas**: 这个库包含了...

Global site tag (gtag.js) - Google Analytics