TestXL.jsp
<!---->
<!---->
DownLoad
<script>
function printAll(){
location.href="<%=request.getContextPath()%>/downloadAction.do";
}
</script>
ExcelBean:
import java.io.*;
import jxl.*;
import jxl.write.*;
import jxl.format.*;
import java.util.*;
import javax.servlet.http.HttpServletResponse;
/*
用于Struts结构中的Excel文件写操作,当但击“导出按钮”时可以直接在客户端导出Excel文件并提示保存
使用方法:
在action类中加入:
ExcelBean eb = new ExcelBean();
if(vect.size()>0){
eb.exportToExcel(response, fname, sheetname, titles, vect); //调用生成excel文件bean
}
参数:
response:action类中的HttpServletResponse;
filename:要生成的保存的缺省的Excel文件名
sheetname:要保存的工作表的名称
titles:工作表中的表格横向标题
vect:数据行
*/
public class ExcelBean {
public ExcelBean() {}
public boolean exportToExcel(HttpServletResponse response,String filename,String sheetname,String[] titles,Vector vect) throws Exception {
OutputStream os = null;
boolean b1 = true ;
try {
os = response.getOutputStream(); //取得输出流
response.reset(); //清空输出流
response.setHeader("Content-disposition","attachment; filename=" + filename + ".xls"); //设定输出文件头
response.setContentType("application/msexcel"); //定义输出类型
} catch (IOException ex) {
b1= false;
System.out.println("流操作错误:"+ex.getMessage());
}
WritableWorkbook workbook = null;
try {
//创建新的Excel 工作簿
workbook = Workbook.createWorkbook(os);
//在Excel工作簿中建一工作表,其名为:第一页
jxl.write.WritableSheet wsheet = workbook.createSheet(sheetname, 0); //sheet();
WritableFont font = new WritableFont(WritableFont.ARIAL, 14,
WritableFont.BOLD, false,
jxl.format.UnderlineStyle.
NO_UNDERLINE,
jxl.format.Colour.BLACK);
WritableCellFormat format = new WritableCellFormat(font);
for (int i = 0; i < titles.length; i++) {
Label wlabel1 = new Label(i, 0, titles[i], format); //行、列、单元格中的文本、文本格式
wsheet.addCell(wlabel1);
}
font = new jxl.write.WritableFont(WritableFont.createFont("宋体"), 12,
WritableFont.NO_BOLD, false,
jxl.format.UnderlineStyle.
NO_UNDERLINE,
jxl.format.Colour.BLACK);
format = new jxl.write.WritableCellFormat(font);
for (int i = 0; i < vect.size(); i++) { // 在索引0的位置创建行(最顶端的行)
String[] sdata = (String[]) vect.elementAt(i);
for (int j = 0; j < sdata.length; j++) { //在索引0的位置创建单元格(左上端)
Label wlabel1 = new Label(j, i, sdata[j], format); //行、列、单元格中的文本、文本格式
wsheet.addCell(wlabel1);
System.out.println(sdata[j] + ":::" + sdata[j]);
}
}
workbook.write(); //写入文件
} catch (WriteException ex1) {
b1 = false;
System.out.println("WriteException:"+ex1.getMessage());
} catch (IOException ex2) {
b1 = false;
System.out.println("IOException:"+ex2.getMessage());
}
workbook.close();
os.close();
return b1;
}
}
DownloadAction:
import org.apache.struts.action.*;
import javax.servlet.http.*;
import com.segsec.base.ExcelBean;
import com.segsec.data.basedata;
import java.util.Vector;
/**
*
Title:DownloadAction
*
Description: QRRSMMS
*
Copyright: Copyright (c) 2004 jiahansoft
*
Company: jiahansoft
* @author wanghw
* @version 1.0
*/
public class DownloadAction extends Action {
public ActionForward execute(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response) throws Exception {
basedata databean = new basedata();
Vector vect = new Vector();
boolean b1= false;
try {
String fname = "test"; //Excel文件名
String[] titles = {"车牌号", "车辆类型", "用户帐号", "车台号"}; //标题
String sheetname = "车辆列表";
ExcelBean eb = new ExcelBean();
vect = databean.QuerySimilarVehicleInfoByAdminer();
if(vect.size()>0){
b1 = eb.exportToExcel(response, fname, sheetname, titles, vect); //调用生成excel文件bean
}
} catch (Exception e) {
System.out.println(e);
}
if(b1){
return mapping.findForward("display");
}else{
return mapping.findForward("failure");
}
}
}
basedata:
import java.sql.PreparedStatement;
import java.util.Vector;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Connection;
public class basedata {
public Vector QuerySimilarVehicleInfoByAdminer(){
Vector vect = new Vector();
int i = 0;
Connection conn = null;
PreparedStatement pstam =null;
ResultSet rs =null;
String url = "jdbc:oracle:thin:@90.0.8.2:1521:ORCL";
String username = "gisap";
String password = "1";
String drivers = "oracle.jdbc.driver.OracleDriver";
String sqlStr = "SELECT V.NUMBER_PLATE,v.vehicletype,A.ADMINER,U.CALL_LETTER "
+" FROM T_ADMINER_UNIT AU,T_ADMINER A,T_VEHICLE V,T_UNIT U "
+" WHERE A.ADMINERID=AU.ADMINERID"
+" AND A.ADMINER ='master' "
+" AND AU.UNITID = U.UNITID "
+" AND U.UNITID = V.UNITID "
+" ORDER BY V.NUMBER_PLATE ";
try{
Class.forName(drivers);
conn = DriverManager.getConnection(url, username, password);
pstam = conn.prepareStatement(sqlStr);
rs = pstam.executeQuery();
int collength = rs.getMetaData().getColumnCount();
while (rs.next()) {
collength = rs.getMetaData().getColumnCount();
String[] rowdata = new String[collength];
for (int k = 1; k <= collength; k++) {
rowdata[k - 1] = rs.getString(k); //new String(rs.getString(k).getBytes("ISO-8859-1"), "GBK"); //
}
vect.add(rowdata);
}
}catch(Exception e){
System.out.println("QuerySimilarVehicleInfoByAdminer Error!"+e.getMessage());
}
finally{
try{
rs.close();
pstam.close();
conn.close();
}catch(Exception e){}
}
return vect;
}
public static void main(String[] args) {
basedata basedata = new basedata();
}
}
分享到:
相关推荐
完整的struts2+jxl文件上传!很好!
运用了Struts和hibernate框架,使用jxl实现工资代发,log4j系统日志记录。
完整的导出excel了,非常好的代码,看看不吃亏,完整的代码!
struts2、poi.jar、jxl.jar
NULL 博文链接:https://heisetoufa.iteye.com/blog/1932093
NULL 博文链接:https://chaoyi.iteye.com/blog/2174164
api.jar jxl.jar itext-1.3.jar poi-2.5.1.jar cos.jar velocity-1.5.jar velocity-tools-view-1.3.jar commons-codec.jar antlr.jar commons-beanutils.jar commons-digester.jar...
本文档详细介绍了struts2整合apache的jxl导入导出excel表格的方法。包括代码,可以直接使用。
jxl+struts2下载execl创建多个sheet
struts2+poi实现excel文件的导出,虽然有很多jxl库实现的方案,而本方案是使用struts2 mvc, apache poi库实现excel的导入导出,文档很详细
一个简单的struts2框架,使用poi和jxl由前台向excel表中添加数据的一个小程序源码,下载下来部署到服务器就能使用,execl的路径在action中修改成你的路径就能使用了
正在使用的java web项目中的SSH框架包,这些包没有冲突,是基于spring3+struts2.2+hibernate3的,还有jdbc驱动、mysql连接驱动jdbc包、mail包、dwr包、upload.jar包等。
struts2导出excel java 导出excel: JXL_excel: 可以直接在elipse下运行的例子 可以直接导出excel文件(包含所需的jar包) CSharpJExcel: 是JXL的官方下载的 包括详细的文档 和jar包
第19章 生成保表(Struts 2.X+Hibernate+JXL) 第20章 数据格式转换(Struts 2.X+Hibernate+Dom4j) 第21章 用户维护功能(Struts 2.X+iBATIS) 第22章 用户登录模块(Struts 2.X+Guice+国际化) 第3篇 项目案例实战...
第19章 生成保表(Struts 2.X+Hibernate+JXL) 第20章 数据格式转换(Struts 2.X+Hibernate+Dom4j) 第21章 用户维护功能(Struts 2.X+iBATIS) 第22章 用户登录模块(Struts 2.X+Guice+国际化) 第3篇 项目案例实战...
NULL 博文链接:https://tangzongyun.iteye.com/blog/2389782
第19章 生成保表(Struts 2.X+Hibernate+JXL) 第20章 数据格式转换(Struts 2.X+Hibernate+Dom4j) 第21章 用户维护功能(Struts 2.X+iBATIS) 第22章 用户登录模块(Struts 2.X+Guice+国际化) 第3篇 项目案例实战...
第19章 生成保表(Struts 2.X+Hibernate+JXL) 第20章 数据格式转换(Struts 2.X+Hibernate+Dom4j) 第21章 用户维护功能(Struts 2.X+iBATIS) 第22章 用户登录模块(Struts 2.X+Guice+国际化) 第3篇 项目案例实战...
jxl 实现的 ssh架构的 经典报表范例程序
使用了hibernate+struts1+spring + MYSql数据库 能够将数据库整张表的数据导出到excel 文件, 也能将excel 的数据导入 到空的 数据库表中。 能够保证导出的数据类型不变。 如要正确运行,必须先执行src 下的backup....