`
chaoyi
  • 浏览: 309551 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Struts2+JXL 下载 Excel 文档

 
阅读更多

ExcelService 业务类

package cn.service;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import jxl.Workbook;
import jxl.write.Label;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
public class ExcelService {
	/**
	 * 调用 JXL 生成 Excel 文件
	 * */
	public InputStream generateExcel(){
		Label label = null;
		WritableWorkbook workbook = null;
		//字节数组的输出流
		ByteArrayOutputStream os = new ByteArrayOutputStream();
		try {
			workbook = Workbook.createWorkbook(os);
			WritableSheet sheet = workbook.createSheet("第 1 页", 0);
			label = new jxl.write.Label(0, 0, "标题");
			sheet.addCell(label);
			label = new jxl.write.Label(0, 1, "数据");
			sheet.addCell(label);
			workbook.write();
			workbook.close();
		} catch (Exception e) {
			e.printStackTrace();
		}
		InputStream is = new ByteArrayInputStream(os.toByteArray());
		return is;
	}
}

 

ExcelAction 控制类

package cn.action;
import java.io.InputStream;
import cn.service.ExcelService;
import com.opensymphony.xwork2.ActionSupport;
@SuppressWarnings("serial")
public class ExcelAction extends ActionSupport {
	//建立一个输入流对象,用于 Excel 文件下载
	private InputStream inputStream;
	//业务类
	private ExcelService excelService = new ExcelService();
	//调用业务类生成 Excel
	public String execute(){
		this.inputStream = excelService.generateExcel();
		return SUCCESS;
	}
	public InputStream getInputStream() {
		return inputStream;
	}
	public void setInputStream(InputStream inputStream) {
		this.inputStream = inputStream;
	}
	public ExcelService getExcelService() {
		return excelService;
	}
	public void setExcelService(ExcelService excelService) {
		this.excelService = excelService;
	}
}

 

web.xml 配置

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
	version="3.0">
	<display-name>Spring13Struts2Jxl</display-name>
	<listener>
		<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
	</listener>
	<context-param>
		<param-name>contextConfigLocation</param-name>
		<param-value>classpath:applicationContext.xml</param-value>
	</context-param>
	<filter>
		<filter-name>struts2</filter-name>
		<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
	</filter>
	<filter-mapping>
		<filter-name>struts2</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>
</web-app>

 

applicationContext.xml 配置

<?xml version="1.0" encoding="UTF-8"?>
<beans
	xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:p="http://www.springframework.org/schema/p"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
</beans>

 

struts.xml 配置

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts 
PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" 
"http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>
	<package name="cn.action" extends="struts-default" namespace="/">
		<action name="excel" class="cn.action.ExcelAction">
			<result type="stream" name="success">
				<!-- 返回类型是 Excel -->
				<param name="contentType">application/vnd.ms-excel</param>
				<param name="inputName">inputStream</param>
				<!-- 指定下载的文件名 -->
				<param name="contentDisposition">attachment;filename="export.xls"</param>
				<param name="bufferSize">1024</param>
			</result>
		</action>
	</package>
</struts>    

 

index.jsp 页面

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>下载文档</title>
</head>
<body>
	下载文档:
	<a href="excel.action">内容</a>
</body>
</html>

 

效果图:



 

 

 

 

  • 大小: 20 KB
  • 大小: 51 KB
分享到:
评论

相关推荐

    SSH+JXL 下载 Excel 文档

    标题 "SSH+JXL 下载 Excel 文档" 涉及到的是在Java开发中,使用Spring、Struts2框架以及JXL库来实现Excel文件的下载功能。SSH(Spring、Struts2、Hibernate)是Java领域常见的MVC架构,而JXL是一个流行的Java库,...

    S2SH+jxl.jar实现导出Excel文档

    ### S2SH+jxl.jar 实现导出Excel文档详解 #### 一、概述 在Java Web开发中,经常需要处理各种格式的数据文件,其中Excel文件因其格式通用且易于操作而被广泛采用。本文将详细介绍如何利用Struts2、Hibernate(简称...

    struts2导出excel java 导出excel JXL

    struts2导出excel java 导出excel: JXL_excel: 可以直接在elipse下运行的例子 可以直接导出excel文件(包含所需的jar包) CSharpJExcel: 是JXL的官方下载的 包括详细的文档 和jar包

    struts2.0+hibernate3.1+spring2.0实例源码里的jar2

    这些库的组合表明这个示例项目不仅包含了一个基本的Struts2、Hibernate和Spring的集成,还可能涉及到报表生成(通过JasperReports)、Excel文件处理(POI和JExcelAPI)、以及可能的MySQL数据库操作。开发者可以参考...

    jxl导入帮助文档

    本篇文档主要介绍了如何利用jxl进行Excel文件数据的导入操作。 ### 关键组件与功能实现 #### 1. 页面设计:userImport.jsp 页面设计部分通过`userImport.jsp`实现。这里提供了一个按钮,用于触发Excel数据导入的...

    jxl.jar;dom4j.jar;jsonplugin-0.34.jar;junit-3.8.2.jar;log4j-1.2.14.jar;struts2-codebehind-plugin-2.0

    这些库的组合表明这是一个可能用于企业级Java Web开发的环境,涵盖了数据处理(jxl)、XML操作(dom4j)、JSON序列化、单元测试(JUnit)、日志管理(Log4j)以及MVC框架(Struts2)等关键方面。对于理解和构建此类...

    ssh项目依赖jar包合集

    SSH(Struts2 + Spring + Hibernate)是一种经典的Java Web开发框架组合,用于构建高效、可扩展的企业级应用程序。这个压缩包文件提供了SSH项目所需的多个关键jar包,确保开发者在进行s2sh开发时能避免因缺少依赖而...

    java导出Excel

    - `jxl.jar` 提供了JExcelAPI,这是一个开源的Java库,用于读取、写入和修改Excel文件。使用JExcelAPI,你可以创建新的工作簿,添加工作表,设置单元格的样式和公式,以及读取已有数据。 - `poi-3.0.1.jar` 是...

    SSH2框架所用到的jar包4

    SSH2框架,全称为Struts2、Spring和Hibernate2的集成框架,是Java Web开发中的一个常用组合。这个框架集合了三个强大库的功能,旨在提供更高效、更灵活的开发环境。下面将详细介绍这些jar包及其在SSH2框架中的作用。...

    SSH整合需要的所有JAR包(1部分).

    在没有使用Apache POI的情况下,可以使用jxl进行Excel相关的操作。 这些JAR文件都是SSH整合时为了保证系统正常运行和功能完整性而必备的组件。在构建项目时,正确引入这些依赖,并配置相应的配置文件(如Spring的...

    happycoding_libs_02

    5. **jxl.jar** - JExcelApi是一个用于读写Excel文件的Java库,虽然POI已经很强大,但JExcelApi在处理较旧的Excel格式时仍然有用。 6. **struts.jar** - 这可能是Struts1的库文件,是一个早期的MVC框架,尽管已被...

    SSH框架整合架包

    - `jxl.jar`:JExcelAPI库,用于读写Excel文件,方便数据导入导出。 这些组件组合在一起,能够帮助开发者快速构建一个具备持久层(Hibernate)、业务逻辑层(Spring)和视图层(Struts2)的完整Java Web应用。通过...

    web项目的jar包

    在本案例中,我们涉及到了SSH(Struts、Spring、Hibernate)框架、JSTL(JavaServer Pages Standard Tag Library)、Excel处理以及JSON处理等多个重要知识点。 1. **SSH框架**: - **Struts**:Struts是一个开源的...

    个人JAVA笔记汇总

    1. **JXL库**: JXL是Java的一个库,用于读写Excel文件。它允许开发者在Java程序中创建、修改和读取Excel工作簿。通过JXL,你可以创建新的工作表,设置单元格样式,读取数据,进行公式计算,并且处理图表,这对于数据...

    ssh+dwr坚决不冲突的jar

    XML解析库(Xerces)和Excel处理库(POI和JXL)可能用于数据导入导出或者报告生成。 总之,这个压缩包为那些在SSH和DWR环境中遇到依赖冲突问题的开发者提供了一个可能的解决方案,通过这些特定版本的JAR文件,他们...

    人力资源管理(基于ssh的j2ee项目)附带lib包2

    【标题】"人力资源管理(基于ssh的j2ee项目)附带lib包2"所涉及的知识点主要集中在Java企业级开发领域,特别是Spring、Struts和Hibernate(SSH)框架的集成应用,以及与之相关的技术和工具。这个项目是用于实现全面...

    源代码-编码添加单引号工具软件.docx

    2. JSP代码部分则是用户界面,使用了Struts2和JSTL标签库。它包含了处理请求的路径设置、导入必要的库,以及定义HTML结构。页面可能包含一个表单,让用户选择Excel文件进行上传,提交后调用Action执行上述逻辑。处理...

    SSHJAR包part02

    2. **poi-2.5.1.jar**:Apache POI 是一个用于读写Microsoft Office格式文件的Java库,如Word(DOC)、Excel(XLS)和PowerPoint(PPT)。在Java程序中,可以使用POI来生成、读取和修改这些文件,尤其在数据导入导出...

    在线请假系统

    JXL是一个基于Java的Excel文档处理库,用于实现在线请假系统的报表生成功能。在在线请假系统中,JXL库用于将请假申请数据导出到Excel文档。 第三部分:系统总体设计 在线请假系统的总体设计涉及到多个方面,包括...

Global site tag (gtag.js) - Google Analytics