`
daerqwert
  • 浏览: 12171 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

struts2 导出XLS问题

阅读更多

   最近做一个项目要用到导出Excel文件。一个大体的思路就是先在服务器端将这个excel文件生成出来,然后用InputStream流输出。

   第一个碰到的问题就是XLS文件的生成,在网上找了一个poi的工具包生成XLS
  
   首先:
 
 // 创建新的 Excel 工作簿
HSSFWorkbook workbook = new HSSFWorkbook();
// 在 Excel 工作簿中建创一个工作表,其名为缺省值 sheet1
HSSFSheet sheet = workbook.createSheet("sheet1");
HSSFRow row = sheet.createRow(0);			
// 在一行中创建一个表格
HSSFCell cell = row.createCell((short) 0);
// 设置此单元格中存入的是字符串
cell.setCellType(HSSFCell.CELL_TYPE_STRING);
cell.setEncoding(HSSFCell.ENCODING_UTF_16);
// 向此单元格中放入值
cell.setCellValue("姓名");


   发现 cell.setEncoding和cell.setCellValue这2个方法已经过时。怎么办呢。Google一下发现原来从poi3.0以后会自动的封装值类型了。我们只需要

cell.setCellValue(new HSSFRichTextString("姓名"));


XLS生成好了后。然后在action中的输出流中指向这个文件路径


private String fileName;// 初始的通过param指定的文件名属性

/** 提供转换编码后的供下载用的文件名 */

	public String getDownloadFileName() {
		String downFileName = fileName;
		try {
			downFileName = new String(downFileName.getBytes("GBK"), "ISO8859-1");
		} catch (UnsupportedEncodingException e) {
			e.printStackTrace();
		}
		return downFileName;
	}
       //要导出文件的PATH
       public String downloadSample() throws Exception {
		this.fileName="/联系人导入模板.xls";
		return "downloadSample";
	}
	// 导出
	public InputStream getInputSampleContacts() throws Exception {
		String filePath = ServletActionContext.getServletContext().getRealPath(this.fileName;
		log.info(filePath);
		XLSExport XLSexpt = new XLSExport(filePath,contactsDAO,groupDAO);
		XLSexpt.write();
		return new FileInputStream(filePath);
	}


在struts.xml中配置


<result name="downloadContacts" type="stream">
				<param name="contentType">application/vnd.ms-excel</param>
				<param name="inputName">inputSampleContacts</param>
				<!-- 使用经过转码的文件名作为下载文件名,downloadFileName属性对应action类中的方法 getDownloadFileName() -->
				<param name="contentDisposition">attachment;filename="${downloadFileName}"</param>
				<param name="bufferSize">4096</param>
			</result>



最后 页面
<a href="<%=basePath%>contacts/downloadContacts.action">导出文件</a>



大体上就是这样了。  

几个注意的地方就是


downFileName = new String(downFileName.getBytes("GBK"), "ISO8859-1");

这里如果你不指定"GBK"的话 在windows环境下部署测试是没问题的。如果放到linux 服务器下会出现中文乱码问题。

<param name="contentType">application/vnd.ms-excel</param>


这个是指定输出文件的类型。










分享到:
评论

相关推荐

    struts2导出excel笔记

    在Struts2中,导出Excel是常见的需求,通常用于数据报表或数据分析。这篇笔记将探讨如何在Struts2中实现Excel的导出功能。 首先,我们需要了解Excel的基本概念。Excel是由Microsoft开发的一款电子表格软件,广泛...

    Struts1.2导出Excel表

    在这个“Struts1.2导出Excel表完美版”中,我们将深入探讨如何利用Struts1.2框架来实现这一功能。 首先,导出Excel表的核心技术是Apache POI库,这是一个用于读写Microsoft Office格式档案的Java库。在Struts1.2...

    struts2导出Excel poi

    本篇文章将深入探讨如何利用Struts2与POI结合,实现从数据库中获取数据并导出到Excel的功能。 首先,让我们了解Struts2的基本概念。Struts2作为一款强大的MVC框架,它的核心是Action,Action是业务逻辑的执行单元。...

    struts2导出数据到excel中方法(模板方法)需要资源及jar包

    poi-3.10-FINAL-20140208.jar,jxls-core-1.0.5.jar,poi-ooxml-3.10-FINAL-20140208.jar,commons-digester-2.1.jar,commons-jexl-2.1.1.jar 博文地址:http://blog.csdn.net/richerg85/article/details/42459471

    struts2利用jasperreport导出excel

    6. **Struts2配置**:在Struts2的配置文件(struts.xml)中,定义一个导出Excel的Action,返回类型设置为流类型(通常为“stream”),并将生成的Excel内容设置到HttpServletResponse的输出流中。 7. **Action实现*...

    struts2Ecxel导入导出

    在Struts2中实现Excel的导入和导出功能,可以帮助用户处理大量的数据,例如批量导入数据库,或者允许用户下载数据为Excel格式进行分析。下面我们将深入探讨Struts2中Excel导入导出的关键知识点。 一、Apache POI库 ...

    POI+struts2导出Excel

    标题中的“POI+struts2导出Excel”是指使用Apache POI库与Struts2框架结合,实现在Web应用程序中导出数据到Excel的功能。Apache POI是Java平台上的一个开源项目,它允许开发者创建、修改和显示Microsoft Office格式...

    struts2 poi 导入xls xlsx 绝对兼容

    以上就是关于"Struts2 poi 导入xls xlsx 绝对兼容"的相关知识点,通过Struts2和Apache POI的结合,开发者可以轻松地在Java Web应用中处理Excel文件,实现数据的导入和导出功能,提高工作效率。在实际项目中,可以...

    POI导入导出EXCEL文件.(struts 1.x and struts2.x).doc

    本文档将详细介绍如何在Web应用程序中使用Apache POI库来实现Excel文件的导入与导出功能,具体而言,我们将聚焦于Struts 1.x版本的应用案例,同时也提供了向Struts 2.x版本迁移的方法指南。 #### 二、背景知识 - *...

    整合struts2 ssh导出excel

    本篇文章将深入探讨如何在Struts2与SSH框架下实现Excel文件的导出。 首先,导出Excel是Web应用中常见的需求,通常用于报表生成或数据批量下载。在Struts2中,我们可以利用Apache POI库来操作Microsoft Office的XML...

    struts2中利用poi导出excel

    本篇文章将深入探讨如何在Struts2框架中使用POI库来导出Excel文件。 首先,我们需要在项目中引入Apache POI库。可以通过Maven或Gradle将其添加到构建文件中。对于Maven,可以在pom.xml文件中添加以下依赖: ```xml...

    struts2+poi实现excel表格导出

    Struts2和Apache POI是Java开发中两个重要的工具,它们在处理Web应用程序中的数据导出,特别是Excel表格导出方面发挥着重要作用。Struts2是一个基于MVC设计模式的Web应用框架,它极大地简化了Java Web开发。而Apache...

    struts2+jxl导出excel

    在"struts2+jxl导出excel"的场景中,我们将讨论如何利用Struts2框架与JXL库配合,实现从web应用中导出数据到Excel的工作。 首先,我们需要理解Struts2的动作(Action)和结果(Result)。动作是处理用户请求的核心...

    struts2+poi导出excel表格完整例子

    在这个“struts2+poi导出excel表格完整例子”中,我们将深入探讨这两个工具如何协同工作,实现从Web应用导出数据到Excel电子表格的功能。 首先,让我们了解一下Struts2的工作原理。Struts2基于拦截器(Interceptor...

    Struts2 poi动态导入导出Excel源码示例

    首先,让我们深入理解一下如何使用Struts2和POI来实现Excel的导入导出。 1. **Struts2的Action配置**: 在Struts2中,你需要创建一个Action类来处理用户请求。这个Action类会有一个方法,专门处理导入或导出Excel...

    struts2+poi 实现Excel导出

    在"Struts2+POI实现Excel导出"的场景中,开发者可以利用这两个工具为用户提供数据导出到Excel的功能。以下是一些关键知识点: 1. **Struts2框架**:Struts2是Action Servlet的一种实现,它是基于拦截器的MVC框架,...

    struts2实现excel导出

    在Struts2中实现Excel导出是一项常见的需求,这通常涉及到将数据库或其他数据源中的数据转换为Excel格式,以便用户可以下载和进一步处理。下面我们将深入探讨如何在Struts2中实现这一功能。 首先,我们需要了解...

    struts2数据导入导出

    ### Struts2 数据导入导出知识点详解 #### 一、概述 在Web应用程序开发中,数据导入导出是一项常见的需求,特别是在需要批量处理大量数据的情况下。Struts2框架结合Apache POI库可以轻松实现Excel文件的数据导入...

    struts,poi导出excel

    2. **创建工作表(Sheet)** `HSSFSheet` 类代表 Excel 文档中的一个工作表。你可以通过调用 `HSSFWorkbook` 的 `createSheet()` 方法创建新的工作表: ```java HSSFSheet sheet = workBook.createSheet("工作表1...

    struts2+poi实现excel文件的导出

    Struts2 和 Apache POI 的整合允许开发者轻松地实现在 Web 应用程序中导出 Excel 文件的功能。Apache POI 是一个 Java 库,它提供了处理 Microsoft Office 格式(如 .xls 和 .xlsx)的能力,包括创建、读取和修改 ...

Global site tag (gtag.js) - Google Analytics