`
utopialxw
  • 浏览: 369823 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

jxls+springmvc实现excel模板导出

    博客分类:
  • java
阅读更多
jxls1.*系列(最新版本1.0.6)是基于jdk5的,项目为1.5,1.6的话可以用1.*系列
jxls2.*系列(最新版本2.3.0)是基于jdk7的,项目必须为1.7以上才可以用2.*系列

以下例子基于1.*系列,
(2.*系列excel模板的设计是使用excel批注实现,1.*系列使用标签实现)

0:pom中引入jar包
		<dependency>
		    <groupId>net.sf.jxls</groupId>
		    <artifactId>jxls-core</artifactId>
		    <version>1.0.6</version>
		</dependency>
		<dependency>
		    <groupId>net.sf.jxls</groupId>
		    <artifactId>jxls-reader</artifactId>
		    <version>1.0.6</version>
		</dependency>


1:定义view
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import net.sf.jxls.transformer.XLSTransformer;

import org.apache.poi.ss.usermodel.Workbook;
import org.springframework.web.servlet.view.AbstractView;

public class JxlsExcelView extends AbstractView {
	
	private static final String CONTENT_TYPE = "application/vnd.ms-excel";

	private String templatePath;

	private String exportFileName;

	/**
	 * @param templatePath 模版相对于当前classpath路径
	 * @param exportFileName 导出文件名
	 */
	public JxlsExcelView(String templatePath, String exportFileName) {
		this.templatePath = templatePath;
		this.exportFileName = exportFileName;
		setContentType(CONTENT_TYPE);
	}

	@Override
	protected void renderMergedOutputModel(Map<String, Object> model, HttpServletRequest request,
			HttpServletResponse response) throws Exception {
		
		InputStream is = null;  
        OutputStream os = null;
        
		os = response.getOutputStream();
		response.setContentType(getContentType());
		
		// 解决导出文件名中文乱码
		String filename = new String(exportFileName.getBytes("gb2312"), "iso8859-1");
		response.setHeader("content-disposition", "attachment;filename=" + filename + ".xls");
		
		// 获取excel模板
		is = JxlsExcelView.class.getClassLoader().getResourceAsStream(templatePath);
        
		//转换成excel并输出
		XLSTransformer transformer = new XLSTransformer();
		Workbook workbook = transformer.transformXLS(is, model);
		
		//将内容写入输出流并把缓存的内容全部发出去  
        workbook.write(os);  
        os.flush();
        os.close();
        is.close();
	}
}


2:resources/jxls/template中设计模板online_user.xls



3:调用
// 导出
	@RequestMapping
	public ModelAndView export(ActionContext context, HttpServletResponse response) throws Exception {
		// 1:准备数据
		List<OnlineUser> userList = getUserList();
		
		// 2:数据放置到jxls需要的map中
		Map<String,Object> modal = new HashMap<String,Object>();  
		modal.put("users", userList);
		modal.put("totalCount", userList.size());
		
		// 3:导出文件
		return new ModelAndView(new JxlsExcelView("jxls/template/online_user.xls","在线用户列表"), modal);
	}


  • 大小: 15.3 KB
分享到:
评论
2 楼 1508987361 2019-02-18  
[i][/i]           
1 楼 1508987361 2017-11-18  
问下实现模板PDF格式下载,怎么改

相关推荐

    Jxls+Spring MVC实现Excel导出

    "Jxls+Spring MVC实现Excel导出"的主题聚焦于如何利用Jxls库和Spring MVC框架来实现这一功能。Jxls是一个强大的Java库,它扩展了Apache POI,使得在Excel模板上进行编程变得简单,而Spring MVC是Spring框架的一部分...

    使用JXLS+Excel模板制作灵活的excel导出

    本文将详细介绍如何使用JXLS库结合Excel模板来实现这一功能。 JXLS(Java Excel Library)是一个强大的开源Java库,它允许开发者通过简单的XML模板来控制Excel文件的内容和格式。这个库简化了Java程序生成复杂Excel...

    Excel报表导出,复杂Excel模板导出(带单元格合并),jxls2

    本项目专注于解决这一问题,通过使用`jxls2`库,能够实现复杂Excel模板的导出,包括单元格的合并,满足多种报表导出需求。现在我们将详细探讨这个项目的核心技术和应用场景。 首先,`jxls2`是一个强大的Java库,它...

    jxls使用模板实现导出excel!

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

    jxls利用模板生成excel文件

    4. **结果导出**:最后,`jxls`将填充后的模板转换为一个新的Excel文件,这个文件包含了所有来自数据模型的信息。 ### 三、jxls的关键特性 1. **动态数据处理**:支持条件逻辑、循环、合并单元格等复杂操作,使得...

    IDEA+Springboot+gradle+Jxls导出Excel

    综上所述,"IDEA+Springboot+gradle+Jxls导出Excel"的项目组合,利用现代开发工具和技术,实现了从数据获取、处理、展示到导出的完整流程。FreeMarker和EasyUI提供了用户友好的界面,Spring Boot和Gradle构建了健壮...

    jxls-poi导出excel示例代码文件

    **正文** 在IT行业中,数据处理和展示是一个重要的任务,Excel作为广泛使用的表格工具,常被用于数据分析和报告生成。...在实际项目中,根据需求调整模板和数据结构,可以实现各种复杂的Excel报告生成。

    Java开发案例-springboot-21-整合JXLS实现Excel导入导出-源代码+文档.rar

    Java开发案例-springboot-21-整合JXLS实现Excel导入导出-源代码+文档.rar Java开发案例-springboot-21-整合JXLS实现Excel导入导出-源代码+文档.rar Java开发案例-springboot-21-整合JXLS实现Excel导入导出-源代码+...

    Jett+Spring MVC实现Excel导出

    在本文中,我们将深入探讨如何使用Jett和Spring MVC框架来实现...如果你需要更多关于Jett和Spring MVC的详细信息,可以参考我的CSDN博客《Jxls+Spring MVC实现Excel导出》,在那里我会进一步探讨相关技术和最佳实践。

    jxls导出模板

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

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

    在本教程中,我们将深入探讨如何使用SpringBoot与JXLS库进行集成,以实现Excel文件的导入和导出功能。这是一个非常实用的功能,尤其在处理大量数据时,如批量用户注册、数据迁移或者数据分析等场景。让我们一起探索...

    用Jxls实现数据导入excel实例

    本文将详细介绍如何使用Jxls实现数据导入Excel的实例。 Jxls库的核心功能在于提供了一种声明式的方式来处理Excel模板,通过使用Apache POI库来操作Excel文件。它的主要优点是将数据和样式分离,让开发者可以专注于...

    springmvc+mybatis+mysql+log4jdbc+excel 实现sql日志输出和excel导出

    在本项目中,"springmvc+mybatis+mysql+log4jdbc+excel 实现sql日志输出和excel导出",开发者旨在构建一个基于SpringMVC、MyBatis、MySQL数据库,利用Log4jdbc记录SQL日志,并通过Jxls进行Excel数据导出的功能完善的...

    (简单)JFinal实现Demo - 导出Excel 使用模板导出(POI + JXLS).zip

    本示例"(简单)JFinal实现Demo - 导出Excel 使用模板导出(POI + JXLS)"提供了一种高效的方法来生成复杂的Excel表格,无需通过编程逐个控制单元格样式。以下是对这个Demo的详细解释: 首先,JFinal是一个基于Java...

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

    而当我们需要在Web应用程序中实现动态生成和导出Excel文件时,一种高效的方法是利用模板和特定的库,如jxls。本文将深入探讨如何使用jxls库,结合xls或xlsx模板,来实现Excel文件的导出和下载。 首先,了解jxls。...

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

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

    jxls模板导出Excel教程

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

    使用 jxls2.X 导出excel文件

    "使用jxls2.X导出Excel文件"的主题涉及了如何利用Java来生成和操作Excel文档,尤其适用于需要动态生成内容的场景。在这个项目案例中,开发者使用了jxls库的最新版本(jxls2),它是一个强大的工具,能够帮助程序员将...

    jxls模板导出Excel所需jar包

    jxls是一个强大的库,它允许开发者使用模板的方式来导出Excel数据,极大地提高了工作效率。本篇将详细介绍jxls库及其在模板导出Excel中的应用。 首先,我们要了解什么是jxls。jxls是一个Java库,它扩展了Apache POI...

Global site tag (gtag.js) - Google Analytics