Struts2利用stream直接输出Excel

http://www.blogjava.net/usherlight/archive/2008/06/23/210135.html
在利用网页展示查询结果,经常会遇到要求导出成Excel的需求。采用这种方法可以定制输出的格式和内容(还不支持合并单元格和公式),生成真正的Excel格式(不是csv)的Excel。
一、struts.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd">
  
<struts>

<constant name="struts.i18n.encoding" value="UTF-8"/>

<package name="demo" extends="struts-default">
        <action name="excel" method="execute" class="demo.ExcelAction">
                <result name="excel" type="stream">
                    <param name="contentType">application/vnd.ms-excel</param>    <!-- 注意这里的ContentType -->
                    <param name="inputName">excelStream</param>                   <!-- 这里需要和Action里的变量名一致 -->
                    <param name="contentDisposition">filename="standard.xls"</param>
                    <param name="bufferSize">1024</param>
                </result>
        </action>
    </package>
</struts>

二、Struts2的 Action

package demo;
public class ExcelAction {
    private InputStream excelStream; // 需要生成getter和setter

public String execute() throws Exception {
        StringBuffer excelBuf = new StringBuffer();
        excelBuf.append("BookName").append("\t").append("Year").append("\t").append("author").append("\n");
        excelBuf.append("Thinking in Java").append("\t").append("2001").append("\t").append("Eckel").append("\n");
        excelBuf.append("Spring in action").append("\t").append("2005").append("\t").append("Rod").append("\n");
        String excelString = excelBuf.toString();
        logger.debug("result excel String: " + excelString);
        excelStream = new ByteArrayInputStream(excelString.getBytes(), 0, excelString.length());
        return "excel";
    }

// getter and setter
    ...
}

三、Jsp页面

<%@ taglib prefix="s" uri="/struts-tags"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
 <head>
  <s:head />
 </head>

<body>

<s:form action="" method="post">
       <s:submit key="button.submit"/>
    </s:form>
 </body>
</html>

posted on 2010-06-17 21:00 浙林龙哥 阅读(...) 评论(...) 编辑 收藏

转载于:https://www.cnblogs.com/huqingyu/archive/2010/06/17/1759770.html

Struts2利用stream直接输出Excel相关推荐

  1. 利用ASP.NET输出指定内容的WORD、EXCEL、TXT、HTM

    利用ASP.NET输出指定内容的WORD.EXCEL.TXT.HTM等类型的文档很容易的.主要分为三步来完成. 一.定义文档类型.字符编码 Response.Clear(); Response.Buf ...

  2. npoi的mvc怎么ajax导出,asp.net mvc利用NPOI导入导出Excel解决方法

    asp.net mvc利用NPOI导入导出Excel 导出Excel 2003没有问题,导出Excel2007老是出现无法访问已关闭的流,请帮忙解决,或是哪位有mvc导入导出excel的工具类能提供, ...

  3. 输出EXCEL文件的通用函数

    常要把各种各样的查询结果输出到EXCEL中,所以做了下面这段小程序,用于把一个SQL的SELECT查询出的结果输出为EXCEL格式文件,这个程序你只要设好用于取得一个记录集的SQL的SELECT查询语 ...

  4. matlab中实现文字和数字和混输出excel

    做一个小程序时,需要数据和文字混合输出到,直接构建这样的矩阵在matlab中行不通 于是有了下列的代码: %输出excel表格 excel_outpath='F:\Work\paper_work\pa ...

  5. C#利用Microsoft.Office.Interop.Excel导出excel文件

    导入Microsoft.Office.Interop.Excel.dll文件引用   为了能够导出excel文件,由于使用的是Microsoft.Office.Interop.Excel,所以我们首先 ...

  6. mvc npoi导出excel ajax,ASP.Net MVC利用NPOI导入导出Excel

    因近期项目遇到所以记录一下: 首先导出Excel: 首先引用NPOI包 http://pan.baidu.com/s/1i3Fosux (Action一定要用FileResult) /// /// 批 ...

  7. 孪生素数 java代码_科学网—孪生素数猜想——利用 Java + 正则表达式 输出孪生素数对 - 马廷灿的博文...

    查了一下资料,发现正则表达式竟然可以用来检查素数(http://coolshell.cn/articles/2704.html)!(由于工作需要,几年前开始接触.利用正则表达式,给工作带了很大方便,也 ...

  8. python对数据进行合并的函数_利用Python pandas对Excel进行合并的方法示例

    前言 在网上找了很多Python处理Excel的方法和代码,都不是很尽人意,所以自己综合网上各位大佬的方法,自己进行了优化,具体的代码如下. 博主也是新手一枚,代码肯定有很多需要优化的地方,欢迎各位大 ...

  9. (原创)不带模板的DOI输出EXCEL

    前面介绍了OLE输出EXCEL有个最大的特点就是慢,因为其是基于单元格层次的一个个操作去填充数据,而DOI技术采用面向对象的方法实现,解决了这个问题.至于为什么能解决,有兴趣的可以慢慢研究. 既然是使 ...

最新文章

  1. 入选Gartner全球AI魔力象限,阿里云解读AI工程化为什么需具备这三大基础能力?...
  2. 服务化的未来--ServiceMesh?
  3. ASP.NET MVC 3 RC发布
  4. 由MAC地址在18字节及6字节之间的转换引发越界问题讨论
  5. Java中的Atomic包使用指南
  6. oracle运行环境配置,oracle 环境配置开机自启动
  7. html只读下拉框,Html.DropDownList – 禁用/只读
  8. 我的世界手机版javaui材质包_传奇世界中变版手机版下载-传奇世界中变版手机版最新下载...
  9. html iframe 设置半透明_HTML基础教程:框架实例大合集
  10. android游戏分成,原神半年吸金10亿美元,为何国内Android商店还秉承着55分成?
  11. 利用泰勒展开求高斯分布表
  12. 电子元器件篇—共模电感
  13. vs2019(C语言) 使用教程
  14. GA/GP中的适应度函数
  15. 20162327WJH四则运算第二周总结
  16. 【推荐】超级好用的打印插件Lodop使用笔记 动态赋值 打印模板解决方案
  17. 服务器数码管不显示,数码管常见故障及检修方法
  18. 2018年第一周APP黑马榜单
  19. ORBSLAM2论文翻译
  20. 【软件工程】三、软件开发过程

热门文章

  1. Java中的异常全面讲解
  2. 【深度学习入门到精通系列】留一交叉验证法Python实现(看不懂你来打我~!)
  3. 【网络爬虫】BeautfulSoup爬百度百科(真の能看懂~!)
  4. Android移动开发之【Android实战项目】DAY9-LineChart的使用
  5. sysbench mysql测试_使用sysbench对MySQL进行测试
  6. mysql57查询无响应_MySQL 单个表锁死 对查询语句无响应
  7. 网站关键词如何布局更有利于关键词排名提升?
  8. 网站推广专员浅析网站建设实用技巧助力网站推广优化
  9. 浅析网站建设之初应该从哪些方面进行考虑?
  10. 浅析网站优化工作具体包括哪些内容?