`
Supanccy2013
  • 浏览: 220780 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

struts导出excel并下载

阅读更多



Action中处理,包含下载中文文件乱码、为空的问题。





import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import java.util.Date;

import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.springframework.beans.factory.annotation.Autowired;

import com.bskcare.ch.base.action.BaseAction;
import com.bskcare.ch.service.ProductCardService;
import com.bskcare.ch.util.DateUtils;
import com.bskcare.ch.vo.ProductCard;
import com.opensymphony.xwork2.ModelDriven;

public class ProductCardAction2 extends BaseAction implements
        ModelDriven<ProductCard> {

    private static final long serialVersionUID = 6658682414884709427L;
   
    @Autowired
    private ProductCardService productCardService;

    private ProductCard pc;

    private String fileName; // 下载文件名称
    private InputStream excelFile; // 下载文件流

    public ProductCard getModel() {
        if (null == pc)
            pc = new ProductCard();
        return pc;
    }

    public String download() throws Exception {
        HSSFWorkbook workbook = xxx(); //这个为调用service层返回的HSSFWorkbook对象
        ByteArrayOutputStream output = new ByteArrayOutputStream();
        workbook.write(output);
        byte[] ba = output.toByteArray();
        excelFile = new ByteArrayInputStream(ba);
        output.flush();
        output.close();
        return "excel";
    }

    public String getDownloadFileName() {
        return fileName;
    }

    public ProductCard getPc() {
        return pc;
    }

    public void setPc(ProductCard pc) {
        this.pc = pc;
    }

    /**
     * 返回类型为"中文名字-20130612231234.xls"
     * @return
     */
    public String getFileName() throws Exception{
        String tempName = "中文名字"+"-"
               + DateUtils.formatDate(DateUtils.LONG_DATE_PATTERN_PLAIN, new Date())
                + ".xls";
       
       fileName = new String(tempName.getBytes(), "ISO8859-1");
        System.out.println(fileName);
        return fileName;   
    }

    public void setFileName(String fileName) {
        this.fileName = fileName;
    }

    public InputStream getExcelFile() {
        return excelFile;
    }

    public void setExcelFile(InputStream excelFile) {
        this.excelFile = excelFile;
    }

}





2


struts.xml下载项配置说明:




<!-- 下载导出excle -->
<result name="excel" type="stream"> 
    <param name="contentType">application/vnd.ms-excel,charset=ISO8859-1</param>
    <param name="contentDisposition">attachment;filename="${fileName}"</param> 
    <param name="bufferSize">4096</param>
    <param name="inputName">excelFile</param> 
</result>


END



注意事项


1


请注意文中加粗部分内容



2


中文解决办法汇总:




代码部分:


String tempName = "中文名字"+"-"
               + DateUtils.formatDate(DateUtils.LONG_DATE_PATTERN_PLAIN, new Date())
                + ".xls";
       
fileName = new String(tempName.getBytes(), "ISO8859-1");




配置文件部分:


<param name="contentType">application/vnd.ms-excel,charset=ISO8859-1</param>

分享到:
评论

相关推荐

    struts2导出excel java 导出excel JXL

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

    struts2导出excel笔记

    通过以上步骤,我们可以实现一个简单的Struts2应用,该应用能够根据用户请求,使用Apache POI库动态生成并导出Excel文件。在实际项目中,可能还需要考虑数据过滤、排序、分页等功能,以及与数据库的交互,这些都可以...

    struts2中利用poi导出excel

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

    Struts2文件流方式导出下载excel、Txt、image图片

    在实际项目中,我们经常需要提供文件下载功能,比如导出Excel表格、文本文件或者图片。Struts2提供了文件流的方式来实现这一需求,这种方式避免了在服务器上生成临时文件,提高了效率并减少了服务器存储空间的占用。...

    struts2 poi导出到excel

    接下来,我们创建一个Struts2的动作类(Action),在这个类中定义导出Excel的方法。这个方法通常会接收一些参数,如查询条件,然后根据这些条件从数据库或其他数据源获取数据。例如: ```java public class ...

    struts1.2+extjs+导出excel项目

    Struts1.2 + ExtJS + 导出Excel项目是一个基于Web的应用开发框架组合,用于构建企业级的Java应用程序。这个项目的重点在于整合Struts1.2(一个经典的MVC框架)与ExtJS(一个富客户端JavaScript库)来提供用户友好的...

    Struts1.2导出Excel表

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

    整合struts2 ssh导出excel

    首先,导出Excel是Web应用中常见的需求,通常用于报表生成或数据批量下载。在Struts2中,我们可以利用Apache POI库来操作Microsoft Office的XML格式,进而创建Excel文件。 1. **Apache POI库的使用**:Apache POI是...

    struts2实现excel导出

    在Struts2框架中,实现Excel导出的功能主要依赖于Apache POI库,这是一个用于读写Microsoft Office格式档案的Java库。以下将详细介绍如何利用Struts2和POI实现Excel导出。 首先,你需要在项目中引入Apache POI库。...

    JSP Struts2 分页 导出Excel

    **JSP Struts2 分页 导出Excel** 在Web开发中,经常需要处理大量数据,这时分页显示和导出功能就显得尤为重要。JSP(JavaServer Pages)和Struts2作为Java Web开发中的常见技术,可以帮助我们构建动态、交互的网页...

    Java Struts2+poi插件 实现导出Excel

    这个项目"Java Struts2+poi插件 实现导出Excel"就是结合这两个工具,为用户提供一个功能,能够将数据导出到Excel格式的文件中。 首先,让我们详细了解一下Struts2。Struts2的核心是Action,它负责接收请求、处理...

    struts2导出Excel poi

    在Struts2中,你可以创建一个Action类,该类包含一个导出Excel的方法,并将上述代码集成到其中。别忘了在Action中设置合适的Result类型,使得返回的内容被浏览器识别为Excel文件,通常可以设置Content-Type为...

    struts,poi导出excel

    在 Java 开发中,如果你需要导出数据到 Excel,Apache POI 提供了高效的 API 来实现这一功能。在本文中,我们将深入探讨如何使用 POI 组件来创建和操作 Excel 文档。 1. **创建 Excel 文档对象** 创建一个 Excel ...

    struts2导出excel.rar

    本压缩包"struts2导出excel.rar"提供了关于如何在Struts2框架中实现Excel导出功能的相关资源。 1. **Struts2框架基础** Struts2是一个基于MVC(Model-View-Controller)设计模式的Java框架,它简化了MVC的实现,...

    Struts2 Excel导入导出数据

    在这个案例中,Action将负责从数据库中检索数据,转换为Excel格式,并将其发送给客户端下载,或者接收上传的Excel文件并处理数据。 3. **JDBC驱动**:为了连接Oracle数据库,我们需要Oracle的JDBC驱动。通过JDBC,...

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

    结合这两个技术,我们可以实现在Web应用中动态导入和导出Excel数据。 首先,让我们深入理解一下如何使用Struts2和POI来实现Excel的导入导出。 1. **Struts2的Action配置**: 在Struts2中,你需要创建一个Action类...

    [转]java struts2+jxl生成并导出Excel

    这篇博客文章结合了这两个技术,展示了如何在Struts2应用中生成Excel文件并将其导出给用户下载。 在Java开发中,导出数据到Excel是常见的需求,特别是在处理大量结构化数据时,如报表或数据分析。JXL库提供了一个...

    struts2+jxl导出excel

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

    struts2+poi实现导出Excel文件

    Struts2 和 Apache POI 的结合使用主要集中在创建 Web 应用程序中导出 Excel 文件的功能上。Apache POI 是一个 Java 库,允许开发者创建、修改和显示 Microsoft Office 格式的文件,其中包括 Excel。而 Struts2 是一...

Global site tag (gtag.js) - Google Analytics