`
21841625a
  • 浏览: 9622 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

jxls 导出xls模版。

    博客分类:
  • jxls
阅读更多
工具类。
public class ExportExcelUtil {
	
	private Map<String,Object> beans = new HashMap<String,Object>();
	
	private String exportFileName = "export.xls";
	
	public void setBeans(String key,Object obj){
		//装载输入对象
		beans.put(key, obj);
	}
	
	
	
	public ExportExcelUtil() {
		//初始化日期格式化工具对象到beans里。
		//excel模版调用方式:${dateUtil.formatToDate(entity.checkDate)}
		// ${dateUtil.formatToDateTime(entity.checkDateTime)}
		 beans.put("dateUtil", new DateUtil());
	}



	public void exportExcel(String fileName){
		try {
			Struts2Utils.getRequest().setCharacterEncoding("UTF-8");
		} catch (UnsupportedEncodingException e1) {
			e1.printStackTrace();
		}
		String systemPath  = this.getClass().getResource("/").getPath();
		//模版文件路径
		String templateFileName = systemPath + "templates/"+fileName+".xls";
//		File outFile = new File(outFileName);
	    XLSTransformer transformer = new XLSTransformer();
        try {
        	InputStream is = new BufferedInputStream(new FileInputStream(templateFileName));
//        	transformer.transformXLS(templateFileName, beans, outFileName);
        	//读取并解析模版文件,填充模版标记中对应的值
        	HSSFWorkbook workbook = (HSSFWorkbook) transformer.transformXLS(is, beans);
        	resetCellFormula(workbook);
			//设置输出环境信息-
        	Struts2Utils.getResponse().reset();
			//输出的xls文件名 格式 2013-04-01
			String outFileName = DateUtil.formatToDate(new Date())+new String(fileName.getBytes("gb2312"),"ISO8859-1");
			Struts2Utils.getResponse().setHeader("Content-Type","application/force-download");
			Struts2Utils.getResponse().setHeader("Content-Type","application/vnd.ms-excel");
			Struts2Utils.getResponse().setHeader("Content-Disposition", "attachment;success=true;filename="+outFileName+".xls"); 
			//利用response获得流对象,写出excel文件
			OutputStream os = Struts2Utils.getResponse().getOutputStream();
			workbook.write(os);
			is.close();
			os.flush();
			os.close();
		} catch (ParsePropertyException e) {
			e.printStackTrace();
		} catch (InvalidFormatException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
	
	
	public String getExportFileName() {
		return exportFileName;
	}

	public void setExportFileName(String exportFileName) {
		this.exportFileName = exportFileName;
	}

	//自动解析单元格里的公式。
	public void resetCellFormula(HSSFWorkbook wb) { 
		
		HSSFFormulaEvaluator e = new HSSFFormulaEvaluator(wb);
		//获取工作簿集合
		int sheetNum = wb.getNumberOfSheets();
		//遍历工作簿
		for (int i = 0; i < sheetNum; i++) {
			HSSFSheet sheet = wb.getSheetAt(i);
			int rows = sheet.getLastRowNum() + 1;//获取总行数
			for (int j = 0; j < rows; j++) {
				HSSFRow row = sheet.getRow(j);
				if (row == null)
					continue;
				int cols = row.getLastCellNum();//获取最后一列
				for (int k = 0; k < cols; k++) {
					HSSFCell cell = row.getCell(k);
					if(cell!=null){
						//如果单元格是公式,则直接解析公式内容
						if (cell.getCellType() == HSSFCell.CELL_TYPE_FORMULA) {
							cell.setCellFormula(cell.getCellFormula());										cell=e.evaluateInCell(cell);
													}
					} else {
						continue;
					}
				}
			}
		}


		
	}


前台js调用。
window.location.href = url;
分享到:
评论

相关推荐

    jxls导出模板

    "jxls导出模板"是利用jxls库实现的一种高效、灵活的方式来处理和导出数据到Excel文件的方法。jxls是一个基于Java的库,它允许开发者使用Apache POI库来扩展XLS(X)模板,从而动态生成Excel文件。 jxls的核心概念是...

    使用xls或xlsx模板(jxls语法)导出Excel并下载的Demo

    本文将深入探讨如何使用jxls库,结合xls或xlsx模板,来实现Excel文件的导出和下载。 首先,了解jxls。jxls是一个Java库,它扩展了Apache POI库的功能,允许我们使用简单的语法(类似于JSP标签)在Excel模板中进行...

    java web使用jxls导出excel功能

    Java Web使用Jxls导出Excel功能是一项常见的需求,特别是在数据报表和数据分析的场景下。Jxls是一个Java库,它提供了一种方便的方式来处理和导出Excel文件,无需编写复杂的Java代码来操作每一个单元格。本篇文章将...

    jxls使用模板实现导出excel!

    下面将详细介绍jxls如何利用模板来实现Excel的导出。 1. **jxls概述**: jxls是一个Java库,它扩展了Apache POI,用于在Java应用中方便地处理Excel工作簿。它引入了一种基于模板的方法,使得动态创建和更新Excel...

    jxls模板导出Excel教程

    jxls模板导出Excel教程 jxls是一种基于模板的报表生成工具,可以快速生成复杂的Excel报表。通过使用jxls,可以将报表生成过程简化,使其变得更加高效和灵活。 jxls的主要特点是使用模板来生成报表,用户可以根据...

    使用 jxls2.X 导出excel文件

    你需要创建一个Excel模板文件(通常以.xls或.xlsx格式),并在其中使用jxls的特定指令(如`开头的标签)来定义动态区域。例如,`&lt;jx:each&gt;`标签可以用来遍历Java集合中的元素,将每个元素填充到对应的工作表行中。 ...

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

    JXLS,全称为Java Excel Library,是一个轻量级的Java库,专门用于处理Microsoft Excel(.xls和.xlsx)文件。它提供了一种简单的方法来读取和写入Excel工作簿,允许我们在Java代码中定义模板,然后使用数据填充这些...

    通过jxls和poi导出excel的dome

    - **样式和公式**:jxls支持在模板中使用Excel内置的样式和公式,这些将在导出时保留。 - **错误处理**:在处理过程中可能会遇到数据类型不匹配、模板格式错误等问题,需要进行适当的错误处理和日志记录。 总之,...

    java excle导出封装 poi jxls exlce导出源码

    然后,你可以使用jXLS库解析模板,将业务数据绑定到模板上,最后生成Excel文件。 以下是一般步骤: 1. **创建模板**:使用Microsoft Excel创建一个带有布局和样式的模板文件,用jXLS的语法定义动态内容。 2. **编写...

    JXLS:excel模板形式导出excel

    #####jXLS - 使用 XLS 模板将数据导出到 Excel 要使用 jXLS 引擎,您必须将 jxls-core jar 放在类路径中。 如果您打算使用 jXLS 读取 XLS 文件,则必须将 jxls-reader jar 文件添加到类路径中。 如果您使用 Maven...

    jxls+springmvc实现excel模板导出

    标题中的“jxls+springmvc实现excel模板导出”指的是使用jxls库和Spring MVC框架来实现在Web应用中导出Excel模板的功能。jxls是一个Java库,它扩展了Apache POI库,允许开发者通过使用简单的Excel公式和指令在模板上...

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

    《使用JXLS将数据库数据导出到Excel模板详解》 在现代企业信息化管理中,数据的导出和分析是一项重要的任务。JXLS(Java Excel Utilities)是一个强大的工具,它允许开发人员根据预设的Excel模板,方便地将数据库中...

    java excel大数据量导出demo,可支持模板导出

    这个"java excel大数据量导出demo"提供了一个高效、灵活的解决方案,它支持模板导出,分页查询,以及处理大数据量的能力。在这个项目中,开发者采用了Apache POI库的SXSSFWorkbook子类,这是一个专门为处理大量数据...

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

    jxls是一个强大的Java库,它允许开发者使用Apache POI库来处理Excel模板,从而简化Excel数据导出的过程。这个功能特别适用于需要将大量结构化数据转换为易于阅读的Excel格式的情况,比如报告、数据分析或用户导出的...

    jxls全部jar包(内包含一个可用的例子)

    这个压缩包包含了jxls所需的全部jar包,因此你可以直接使用它们来实现Excel数据的导入和导出功能。让我们深入了解一下jxls和Apache POI的相关知识点。 1. **Apache POI**: Apache POI是Apache软件基金会的一个开源...

    java 处理Excel 带 List

    此外,Apache POI还支持模板导出Excel,即预先定义好Excel模板,然后填充数据,这种方式在生成复杂报表时非常有用。 在实际项目中,可能还需要考虑性能问题,因为处理大量数据时,内存消耗可能会很大。为了解决这个...

    jxls所用的jar

    在描述中提到的"jxls模板导出Excel所用的jar",通常包括以下jar文件: - `jxls.jar`: 主要的`jxls`库,包含了模板处理和数据合并的逻辑。 - `jxls-poi.jar`: 提供了基于Apache POI的Excel操作功能。 - `poi-ooxml-...

    jxls读写工具类

    开发者先创建一个Excel模板(.xls或.xlsx格式),在这个模板中定义好样式和布局,然后使用jxls的API和映射文件将Java对象的数据填充到模板中,生成最终的Excel文件。这一步通常包括设置模板路径、读取数据源、定义...

Global site tag (gtag.js) - Google Analytics