TestXL.jsp <%@page contentType="text/html; charset=GBK"%> <%@taglib uri="/WEB-INF/struts-html.tld" prefix="html"%> <html:html> <html:button property="button" onclick="printAll()">DownLoad</html:button> </html:html> <script language='javascript' type="text/javascript"> 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; /** * <p>Title:DownloadAction </p> * <p>Description: QRRSMMS </p> * <p>Copyright: Copyright (c) 2004 jiahansoft</p> * <p>Company: jiahansoft</p> * @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(); } } 在struts-config.xml文件的<action-mappings></action-mappings>段中加入: <action type="com.segsec.action.DownloadAction" path="/downloadAction"> <forward name="display" path="/welcome.jsp" /> </action>
相关推荐
Java生成密钥、保存密钥的实例源码,通过本源码可以了解到Java如何产生单钥加密的密钥(myKey)、产生双钥的密钥对(keyPair)、如何保存公钥的字节数组、保存私钥到文件privateKey.dat、如何用Java对象序列化保存私钥,...
其中save(FileActionForm fileForm)方法,将封装在fileForm中的上传文件保存到数据库中,这里我们使用FileActionForm作为方法入参,FileActionForm是Web层的表单数据对象,它封装了提交表单的数据。将...
它使用服务层框架可以将JavaBeans从Jsp/Servlet中分离出来,而使用表现层框架则可以将Jsp中剩余的JavaBeans完全分离,这部分JavaBeans主要负责显示相关信息,一般是通过标签库(Taglib)实现,不同框架有不同自己的...
JSP+Servlet+Struts+Hibernate+Spring+Ajax》重点讲解了Struts 2、Speing和HIbernate框架的基础知识和高级技术,如Sruts 2中的*、类型转换、国际化和标签等,HIbe rna{e的会话、0/R映射和事务管理等,Spring中的...
Java生成密钥、保存密钥的实例源码,通过本源码可以了解到Java如何产生单钥加密的密钥(myKey)、产生双钥的密钥对(keyPair)、如何保存公钥的字节数组、保存私钥到文件privateKey.dat、如何用Java对象序列化保存私钥,...
JSP+Servlet+Struts+Hibernate+Spring+Ajax》重点讲解了Struts 2、Speing和HIbernate框架的基础知识和高级技术,如Sruts 2中的*、类型转换、国际化和标签等,HIbe rna{e的会话、0/R映射和事务管理等,Spring中的...
-(2)如果ActionForm实例不存在,就创建一个ActionForm对象,把客户提交的表单数据保存到ActionForm对象中; -(3)根据配置信息决定是否需要表单验证.如果需要验证,就调用ActionForm的validate()方法; -(4)如果...
JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 (<jcaptcha:image label="Type the text "/> ) 即可,直接在 struts.xml 中进行配置,使用强大的 JCaptcha来生成验证码...
JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 (<jcaptcha:image label="Type the text "/> ) 即可,直接在 struts.xml 中进行配置,使用强大的 JCaptcha来生成验证码...
JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 (<jcaptcha:image label="Type the text "/> ) 即可,直接在 struts.xml 中进行配置,使用强大的 JCaptcha来生成验证码...
JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 (<jcaptcha:image label="Type the text "/> ) 即可,直接在 struts.xml 中进行配置,使用强大的 JCaptcha来生成验证码...
JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 (<jcaptcha:image label="Type the text "/> ) 即可,直接在 struts.xml 中进行配置,使用强大的 JCaptcha来生成验证码...
JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 (<jcaptcha:image label="Type the text "/> ) 即可,直接在 struts.xml 中进行配置,使用强大的 JCaptcha来生成验证码...
JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 (<jcaptcha:image label="Type the text "/> ) 即可,直接在 struts.xml 中进行配置,使用强大的 JCaptcha来生成验证码...
JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 (<jcaptcha:image label="Type the text "/> ) 即可,直接在 struts.xml 中进行配置,使用强大的 JCaptcha来生成验证码...
JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 (<jcaptcha:image label="Type the text "/> ) 即可,直接在 struts.xml 中进行配置,使用强大的 JCaptcha来生成验证码...
JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 (<jcaptcha:image label="Type the text "/> ) 即可,直接在 struts.xml 中进行配置,使用强大的 JCaptcha来生成验证码...