`

JXLS生成excel工具类

    博客分类:
  • J2SE
 
阅读更多
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.List;
import java.util.Map;

import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.FormulaEvaluator;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import net.sf.jxls.transformer.XLSTransformer;

public final class JxlsUtil {
	
	private static final Logger LOGGER = LoggerFactory.getLogger(JxlsUtil.class);
	
	private static JxlsUtil jxlsUtil = null;
	
	private JxlsUtil()
	{
		
	}
	
	public static JxlsUtil getInstance()
	{
		if(jxlsUtil == null)
		{
			return new JxlsUtil();
		}
		return jxlsUtil;
	}
	
	/**
	 * 根据模板生成excel文件
	 * @param map
	 * @param filePath
	 * @param targetPath
	 */
	public void buildXLS(Map map, String filePath, String targetPath) 
	{
		XLSTransformer transformer = new XLSTransformer();
		try 
		{
			InputStream is = new FileInputStream(filePath);
			HSSFWorkbook workBook = (HSSFWorkbook) transformer.transformXLS(is,map);
			workBook.setActiveSheet(0);
			OutputStream os = new FileOutputStream(targetPath);
			workBook.write(os);
			is.close();
			os.flush();
		} 
		catch (FileNotFoundException e) 
		{
			LOGGER.error("exception message: ",e);
		}
		catch (IOException e) 
		{
			LOGGER.error("exception message: ",e);
		} 
		catch (Exception e) 
		{
			LOGGER.error("exception message: ",e);
		}
	}
	
	/**
	 * 根据模板生成excel文件
	 * @param map
	 * @param filePath
	 * @param targetPath
	 */
	public void buildMultipleSheetsXLS(String filePath, String targetPath, List objects, List newSheetNames, String beanName, Map beanParams, int startSheetNum,MergedCallBack mergedCallBack) 
	{
		XLSTransformer transformer = new XLSTransformer();
		OutputStream os = null;
		InputStream is = null;
		try 
		{
			is = new FileInputStream(filePath);
			HSSFWorkbook workBook = (HSSFWorkbook) transformer.transformMultipleSheetsList(is, objects, newSheetNames, beanName, beanParams, startSheetNum);
			FormulaEvaluator evaluator = workBook.getCreationHelper().createFormulaEvaluator();
			for(int sheetNum = 0; sheetNum < workBook.getNumberOfSheets(); sheetNum++) {
			    Sheet sheet = workBook.getSheetAt(sheetNum);
			    for(Row r : sheet) {
			        for(Cell c : r) {
			            if(c.getCellType() == Cell.CELL_TYPE_FORMULA) {
			            	evaluator.evaluateFormulaCell(c);
			            	c.setCellType(Cell.CELL_TYPE_NUMERIC);
			            }
			        }
			    }
			}
			if(mergedCallBack != null)
			{
				mergedCallBack.setMegerdCall(workBook);
			}
			os = new FileOutputStream(targetPath);
			workBook.write(os);
			os.flush();
		} 
		catch (FileNotFoundException e) 
		{
			LOGGER.error("exception message: ",e);
		}
		catch (IOException e) 
		{
			LOGGER.error("exception message: ",e);
		} 
		catch (Exception e) 
		{
			LOGGER.error("exception message: ",e);
		}
		finally {
			if(is != null)
			{
				try {
					is.close();
				} catch (IOException e) {
					LOGGER.error("exception message: ",e);
				}
			}
			if(os != null)
			{
				try {
					os.close();
				} catch (IOException e) {
					LOGGER.error("exception message: ",e);
				}
			}
		}
	}
}

 

import org.apache.poi.hssf.usermodel.HSSFWorkbook;

public interface MergedCallBack
{
	void setMegerdCall(HSSFWorkbook workBook);
}

 

0
0
分享到:
评论

相关推荐

    SpringBoot(33) 整合JXLS实现Excel导入导出

    JXLS会根据模板和提供的数据来生成Excel文件。 3. **编写Java代码**:创建一个服务类,定义方法来处理Excel的导入和导出。导入操作通常涉及读取Excel文件并将其转换为Java对象;导出则相反,将Java对象转换为Excel...

    jxls读写工具类

    总结来说,"jxls读写工具类"是Java中处理Excel文件的一种高效方法,通过结合XML映射文件和Excel模板,可以轻松实现复杂的数据导出和报表生成。熟练掌握这一工具,将极大地提升你在数据处理方面的开发效率。

    jxls 下载 excel 的测试

    总结起来,jxls 是一个强大的工具,它使 Java 开发人员能够轻松地创建和下载动态生成的 Excel 文件。通过学习和使用 jxls,你可以提高工作效率,减少手动创建和更新 Excel 表格的工作量,特别是在需要批量处理数据时...

    jxls导出excel官方例子

    然后,使用jxls的`JxlsHelper`类来处理模板和数据,生成最终的Excel文件。例如: ```java List&lt;Person&gt; people = ... // 你的数据集合 InputStream templateInputStream = ... // 模板文件的输入流 OutputStream...

    java web使用jxls导出excel功能

    Jxls提供了一个`JxlsHelper`工具类,它包含了一些静态方法来帮助我们完成这个任务。以下是一个简单的示例: ```java import org.jxls.common.Context; import org.jxls.util.JxlsHelper; import java.io....

    通过jxls和poi导出excel的dome

    本示例着重讲解如何利用Java的两个库——jxls和Apache POI,来实现动态生成Excel文件,以满足各种定制化的导出需求。 首先,Apache POI是一个流行的开源Java API,它允许开发者创建、修改和显示Microsoft Office...

    jxls报表生成利器,比起jxl,poi牛逼得很

    标题中的“jxls报表生成利器,比起jxl,poi牛逼得很”暗示了本文将讨论在Java环境下生成Excel报表的工具,重点在于jxls和Apache POI库的对比。jxls是一个基于Apache POI的扩展库,使得在处理Excel模板时更加方便高效...

    jxls实现Excel表格

    在Java开发中,处理和生成Excel表格是一项常见的任务,尤其是在数据导入导出、报表生成以及数据分析等场景。jxls是一个强大的库,它允许开发者利用Java编程来动态地填充Excel模板,从而生成复杂的Excel文件。这个库...

    jxls模板导出Excel所需jar包

    总的来说,jxls是一个强大且灵活的工具,它可以简化Java程序中的Excel导出工作。通过模板方式,开发者可以专注于数据逻辑,而不是复杂的Excel格式化代码。熟练掌握jxls的使用,将大大提高你在处理Excel相关任务时的...

    jxls导excel所需的所有jar包

    JXLS(Java Excel Library)是一个强大的工具,它允许开发者使用简单的模板来处理Excel工作表,实现数据的填充和读取。本篇文章将详细探讨JXLS库及其所需的jar包,帮助开发者更好地理解和使用这一工具。 首先,我们...

    利用jxls操作excel模板文件

    Jxls提供了`JxlsHelper`类,它是操作Excel的主要工具。使用`processTemplate()`方法,我们可以加载模板,填充数据并保存结果到新的Excel文件。 ```java import org.jxls.common.Context; import org.jxls.util....

    jxls导出excel所用所有jar包

    `jxls`是一个非常实用的库,它允许我们利用Java模板技术来方便地生成Excel文件。`jxls`通过简化Excel操作,使得在程序中动态填充数据到Excel模板变得简单高效。本篇文章将详细介绍`jxls`以及如何使用`jxls`导出Excel...

    jxls1.0.5报表工具

    jxls1.0.5是该工具的一个版本,它提供了一系列增强功能和改进,帮助开发者更便捷地处理Excel数据的导出和导入。 ### 1. jxls-core-1.0.5.jar 这是jxls的核心组件,包含了处理Excel模板和数据的主要类和接口。它...

    jxls使用模板实现导出excel!

    Java编程语言在处理数据导出,特别是在生成Excel文件时,提供了多种库,其中之一就是jxls。jxls是一个强大的工具,它允许我们使用Apache POI库的功能,但通过使用JSP标签和简单的模板来简化Excel文件的创建过程。...

    使用 jxls2.X 导出excel文件源码

    在IT行业中,处理数据并以用户友好的方式展示是至关重要的任务之一,Excel作为广泛使用的电子表格工具,常被用于数据分析、报告生成等场景。`jxls2` 是一个Java库,它允许开发者使用简单的Excel模板来动态地生成或...

    jxls实现的excel导出功能,支持03以上版本

    标题中的“jxls实现的excel导出功能,支持03以上版本”指的是使用jxls库来生成Excel文件的程序设计技术。jxls是一个强大的Java库,它允许开发者使用Apache POI库来处理Excel模板,从而简化Excel数据导出的过程。这个...

    使用jxls轻松制作excel报表

    在IT行业中,生成和处理...总之,jxls是一个非常实用的工具,能够简化Java开发者在生成Excel报表时的工作。通过学习和实践,我们可以利用其强大的功能来提高工作效率,减少代码量,同时保持Excel报表的灵活性和美观性。

    jxls2.3 官网最新下载

    总的来说,Jxls是一个强大且灵活的工具,为处理和生成Excel数据提供了便利。其2.3.0版本的更新可能包括性能优化、新功能添加或对已有功能的改进,确保了更好的用户体验和更高的开发效率。对于需要处理Excel的Java...

    JXLS将数据库取得的数据根据Excel模板导出

    JXLS(Java Excel Utilities)是一个强大的工具,它允许开发人员根据预设的Excel模板,方便地将数据库中的数据导出,大大简化了数据处理的工作流程。本文将深入探讨如何利用JXLS实现这一功能。 1. **所需库文件** ...

Global site tag (gtag.js) - Google Analytics