Struts2利用stream直接输出Excel
来源:互联网 发布:设计班服要用什么软件 编辑:程序博客网 时间:2024/05/01 08:44
2010-05-27 18:19:02| 分类:struts2学习笔记 | 标签:|字号大中小 订阅
在利用网页展示查询结果,经常会遇到要求导出成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();//以下拼接的字符串可以是一个HTML字符串,然后导出的excel可以是带样式的
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());
ByteArrayOutputStream output = new ByteArrayOutputStream();
output.write(excelString.getBytes());//因为直接放到输入流的话缓冲区不够,所以先放到输出流在放到输入流
excelStream = new ByteArrayInputStream(output.toByteArray());
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>
- Struts2利用stream直接输出Excel (转)
- Struts2利用stream直接输出Excel
- Struts2利用stream直接输出 例子
- 利用stream直接下载文件
- 利用Adodb.Stream直接下载文件
- 利用Adodb.Stream直接下载文件
- 利用Adodb.Stream直接下载文件
- struts2写EXCEL输出
- GRR3 报表 直接EXCEL输出
- 利用XML生成Excel,解决直接输出导出EXCEL的关联迅雷吧ASPX下载下来的问题
- C#直接循环写入stream,导出到excel(1)
- struts2 利用 POI 导出 excel
- 利用ApachePOI输出Excel文件
- ASP.NET 直接输出Excel文件
- java直接输出Excel 页面实现下载
- struts2输出并下载excel文件
- struts2输出并下载excel文件
- struts2利用poi导出excel文件
- (转)Windows下导出postgres数据
- 线程中yield()方法的一个奇怪的问题
- 自定义document.getElementsByName() 兼容IE Firfox
- 让单文档程序只运行一次
- SQL中char、varchar、text和nchar、nvarchar、ntext的区别
- Struts2利用stream直接输出Excel
- FAT,FAT32,NTFS单目录文件数量限制
- ORACLE PL/SQL编程之把过程与函数说透
- dizhi
- 一个简单的Ajax实例
- python的SocketServer代码记录
- 使用ffmpeg sdk v3.2和vc6.0编译output_example.c
- Python连接Access和读取Access数据库的例子
- 对代理模式与Java动态代理类的理解