struts2: 通过流输出实现exce导出

参考下面代码,在Action中加一个方法:

 1     // 导出excel
 2     public String excel() throws Exception {
 3     StringBuffer excelBuf = new StringBuffer();
 4     excelBuf.append("运单号").append("\t").append("始发站").append("\t").append("目的站").append("\n");
 5     excelBuf.append("112-00100100").append("\t").append("PEK").append("\t").append("SHA").append("\n");
 6     excelBuf.append("112-00100111").append("\t").append("PVG").append("\t").append("XIY").append("\n");
 7     excelBuf.append("112-00100122").append("\t").append("SHA").append("\t").append("HHY").append("\n");
 8     String excelString = excelBuf.toString();
 9     excelStream = new ByteArrayInputStream(excelString.getBytes(), 0, excelString.getBytes().length);
10     return "excel";
11     }

实质上是一个格式化的cvs文本文件,但是所有的excel/wps都能识别这种格式,导出的数据量不大,且没有复杂的线框格式要求时,这种处理方式最为方便

 

struts2的配置文件:

 1 <package name="cba_index" ...>
 2     ...
 3     <action name="index_*" method="{1}" class="CbaAction">
 4         <result name="success">/mu-reservation/cba/index.jsp</result>
 5         <!-- 导出excel -->
 6         <result name="excel" type="stream">
 7             <param name="contentType">application/vnd.ms-excel</param>    <!-- 注意这里的ContentType -->
 8             <param name="inputName">excelStream</param>                   <!-- 这里需要和Action里的变量名一致 -->
 9             <param name="contentDisposition">filename="download.xls"</param> <!-- 下载文件的名字 -->
10             <param name="bufferSize">10240</param>  <!-- 下载文件的大小 10485760=10M -->
11         </result>
12     </action>
13     ...
14 </package>

页面上

1 <a href="index_excel.do" target="_blank">导出excel示例</a>

导出后的文件打开效果:

时间: 2025-01-29 15:02:37

struts2: 通过流输出实现exce导出的相关文章

图片以二进制流输出到网页

二进制|网页 using System;using System.Collections;using System.ComponentModel;using System.Data;using System.Drawing;using System.Web;using System.Web.SessionState;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.HtmlControls;using

【JSP开发】通过response的writer流输出数据的问题

package cn.edu.Response; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse

link中如何像C++那样重载&amp;amp;lt;&amp;amp;lt;实现流输出?

问题描述 link中如何像C++那样重载<<实现流输出? link中如何像C++那样重载<<实现流输出? 解决方案 https://msdn.microsoft.com/zh-cn/library/8edha89s.aspx

压缩文件并加密,用流输出,中间不生成zip文件,怎么实现

问题描述 压缩文件并加密,用流输出,中间不生成zip文件,怎么实现 压缩文件并加密,用流输出,中间不生成zip文件,怎么实现,想不明白,求大神指点 解决方案 你这其实就是一个文件加密而已, 你问的流输出,其实转化到代码就是一个byte数组,对不? 是这个形式的么? 解决方案二: yteArrayOutputStream byeout=new ByteArrayOutputStream(); ZipOutputStream out = new ZipOutputStream(byeout); 可以

JavaScript中输出信息的方法(信息确认框-提示输入框-文档流输出)_javascript技巧

js中输出信息的方法内容如下所示: 1.文档流输出 document.write('hello'); 2.输出信息提示框 模态对话框 window.alert('要输出显示的内容'); 或 alert('要输出显示的内容'); alert(n); 3.信息确认框 var f = window.confirm('是否要进入新浪网'); confirm(""); if(f){ location.href = 'http://www.sina.com.cn'; } 4.提示输入框 windo

在Action中以Struts2的方式输出JSON数据的实例_java

下面是整个Action的完整代码: package cn.ysh.studio.struts2.json.demo.action; import java.io.IOException; import java.io.PrintWriter; import java.util.HashMap; import java.util.Map; import javax.servlet.http.HttpServletResponse; import org.apache.struts2.Servlet

asp.net实现图片以二进制流输出的两种方法_实用技巧

本文实例讲述了asp.net实现图片以二进制流输出的两种方法.分享给大家供大家参考,具体如下: 方法一: System.IO.MemoryStream ms = new System.IO.MemoryStream(); System.IO.Stream str = new FileUpload().PostedFile.InputStream; System.Drawing.Bitmap map = new System.Drawing.Bitmap(str); map.Save(ms, Sy

ffmpeg 播放直播流输出后的信息 如何看懂

问题描述 ffmpeg播放直播流的输出有很多信息,是否有哪位高手可以提供很全的参数说明另外,最近碰到一个问题一直没找到答案,CSDN上也有人问过,如下我的直播流是推送到CDN上的,用ffmpeg播放时,总会出现如下DTS.....0:0的多条信息,不知道什么意思,什么导致的,问了说是因为cdn用了直播流buffer的功能,但是DTS为什么一直都是0:0也没见有1:0或0:1呀 解决方案 解决方案二:有米有高手可以帮忙看看这个问题,已经纠结2天了无果

struts2中iterator输出问题

问题描述 新闻模块:一个新闻对象news:有字段id,topic,content.查询数据库得到多条新闻对象,我用ArrayList<News>newsArr=newArrayList<News>();newArr来存储这些新闻对象.问题:用struts2标签iterator迭代输出,但是我只需要在jsp页面输出news的topic项,怎么输出?数据库查询得到的是newArr,但是action怎么写才能只取得每个topic,或者在jsp页面iterator中有其他属性可以实现只出错