l例子很简单,就一个Action类和一个Service类
1.所需jar包
struts2需要jar包:commons-logging.jar、freemarker-2.3.8.jar、ognl-2.6.11.jar、struts2-core-2.0.11.1.jar、xwork-2.0.4.jar
excel导出:jxl.jar
2.配置
.....
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
......
<?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>
<package name="platform-default" extends="struts-default">
<action name="excel" class="action.ExcelAction">
<result name="excel" type="stream">
<param name="contentType">
application/vnd.ms-excel
</param>
<param name="inputName">excelStream</param>
<param name="contentDisposition">
filename="export.xls"
</param>
<param name="bufferSize">1024</param>
</result>
</action>
</package>
</struts>
3.Action实现
package action;
import java.io.InputStream;
import service.IExcelService;
import service.impl.ExcelServiceImpl;
public class ExcelAction {
InputStream excelStream;
public String execute(){
IExcelService es = new ExcelServiceImpl();
excelStream = es.getExcelInputStream();
return "excel";
}
//get set...
}
4.Service实现
a.接口
package service;
import java.io.InputStream;
public interface IExcelService {
InputStream getExcelInputStream();
}
b.实现类
package service.impl;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import jxl.Workbook;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
import service.IExcelService;
public class ExcelServiceImpl implements IExcelService {
@Override
public InputStream getExcelInputStream() {
//将OutputStream转化为InputStream
ByteArrayOutputStream out = new ByteArrayOutputStream();
putDataOnOutputStream(out);
return new ByteArrayInputStream(out.toByteArray());
}
private void putDataOnOutputStream(OutputStream os) {
jxl.write.Label label;
WritableWorkbook workbook;
try {
workbook = Workbook.createWorkbook(os);
WritableSheet sheet = workbook.createSheet("Sheet1", 0);
label = new jxl.write.Label(0, 0, "struts2导出excel");
sheet.addCell(label);
workbook.write();
workbook.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
这样例子就完成了:
直接访问:http://127.0.0.1:8080/excel/excel.action 就可以导出excel
说明:
1、例子中OutputStream转InputStream是一种简单的实现,但是需要内存比较多,可以参考:
http://ostermiller.org/convert_java_outputstream_inputstream.html
2、参考实现:http://merrygrass.iteye.com/blog/558274
3、java报表JXL和POI打印设置
代码在附件中,jar包自己下载后导入即可
问题:
//横向打印
sheet.getSettings().setOrientation(PageOrientation.LANDSCAPE);
//默认行高(似乎不起作用)
sheet.getSettings().setDefaultRowHeight(510);
//设置行宽
sheet.getSettings().setDefaultColumnWidth(10);
横向设置和行宽起作用,但行高不起作用,望高手回答
---------------------------------------------------------------------------------
默认行高问题解决:
此方法针对excel2003,在创建sheet后,添加如下代码
for(int i=0;i<65536;i++){
sheet.setRowView(i, 360);
}
补充:jxl中20个高度对应excel的1个高度,jxl的1个宽度对应excel的7个宽度
--EOF--
分享到:
相关推荐
struts2导出excel java 导出excel: JXL_excel: 可以直接在elipse下运行的例子 可以直接导出excel文件(包含所需的jar包) CSharpJExcel: 是JXL的官方下载的 包括详细的文档 和jar包
struts2实现excel导出struts2实现excel导出struts2实现excel导出struts2实现excel导出
Struts1.2导出Excel表完美版
poi struts2 导出Excel 用jdbc连的sql server2000 非常简单 一看就能明白怎么个回事 就一张表 3个字段 适合第一次用poi的朋友
struts2中利用poi导出excel的简单例子
利用struts2和poi把数据导出到excel
struts2 导出 excel 可以很好的移植到你的项目中去!
整合struts2 ssh导出excel,绝对可以用。
struts1.2+extjs+导出excel项目 struts1.2+extjs+导出excel项目
使用JSP、Struts2和jquery实现简单查询,分页,导出到Excel并保存到本地计算机。(数据库相关内容在webroot下db文件夹内)
这是学习struts2时记得重点笔记,包括了一些原理,ognl语句的编写,以及如何设置拦截器等等一些基本知识,起到复习和巩固的作用
此文档提供全面的poi导出excel,对于有这方面需要的朋友有很大的帮助。
Struts2+Excel导出Demo,测试可用带全部运行所需的JAR包
本文档详细介绍了struts2整合apache的jxl导入导出excel表格的方法。包括代码,可以直接使用。
struts1.x的例子,struts2.x可以参考自己修改 1.action的写法 import java.io.*; import java.sql.*; import java.util.ArrayList; import javax.servlet.http.HttpServletRequest; import javax.servlet....
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.0+poi插件 实现导出excel
Struts2文件流方式导出下载excel、Txt、image图片,直接返回给浏览器提示下载,不生成临时文件,直接保存在客户端
POI + Struts2 实现Excel导出工具包,POI + Struts2 实现Excel导出工具包