在struts中应用JXL读写EXCEL

在struts中应用JXL读写EXCEL参考,只不过我的操作有点不同, 我要实现的是将页面上显示的表格数据导出到EXCEL中,由于表头过于复杂,我不想在EXCEL中直接写,就想先把表头写好,在导出的时候,先去读这个文 件,然后继续填充数据,实现方法如下:  
   
  package   com.lonwin.struts.action;  
   
  import   java.io.File;  
  import   java.io.FileOutputStream;  
  import   java.io.OutputStream;  
   
  import   java.util.ArrayList;  
   
  import   javax.servlet.ServletOutputStream;  
  import   javax.servlet.http.HttpServletRequest;  
  import   javax.servlet.http.HttpServletResponse;  
   
  import   org.apache.struts.action.Action;  
  import   org.apache.struts.action.ActionForm;  
  import   org.apache.struts.action.ActionForward;  
  import   org.apache.struts.action.ActionMapping;  
   
  import   com.lonwin.struts.form.ShuiXiDataCollectionBean;  
   
   
  //import   com.lonwin.util.SaveParamBean;  
   
  import   jxl.*;  
   
  import   jxl.write.*;  
  import   jxl.write.Number;  
   
   
   
  /**    
    *   created   on   04-29-2004  
    *    
    *   功能:实现导出EXCEL功能  
    *   @struts:action   validate="true"  
    */  
  public   class   ExcelexportAction   extends   Action   {  
   
  //   ------------------------------------------   Instance   Variables  
  private   static   final   String   CONTENT_TYPE   =   "application/vnd.ms-excel";    
  //   --------------------------------------------   Methods  
   
  /**    
    *   Method   execute  
    *   @param   ActionMapping   mapping  
    *   @param   ActionForm   form  
    *   @param   HttpServletRequest   request  
    *   @param   HttpServletResponse   response  
    *   @return   ActionForward  
    *   @throws   Exception  
    */  
  public   ActionForward   execute(  
  ActionMapping   mapping,  
  ActionForm   form,  
  HttpServletRequest   request,  
  HttpServletResponse   response)  
  throws   Exception   {  
   
  response.setContentType(CONTENT_TYPE);  
  ArrayList   array   =   new   ArrayList();  
  array   =   (ArrayList)request.getSession().getAttribute("collectionsPWL");  
   
  System.out.println("得到记录"+array.size()+"个   !");  
   
   
   
  //读excel文件  
   
  try   {  
   
   
  File   tempFile=new   File("C:\\shuibao\\WorkProgram\\ExcelHeader\\shuixiPWL.xls");  
   
   
   
  // 创建只读的Excel工作薄的对象  
          Workbook   wb   =   Workbook.getWorkbook(tempFile);    
   
  // 创建可写入的Excel工作薄对象  
  // OutputStream   os   =   new   FileOutputStream(targetfile);  
  //         WritableWorkbook   rwb   =   Workbook.createWorkbook(targetfile,wb);  
   
  ServletOutputStream   os   =   response.getOutputStream();  
  WritableWorkbook   rwb   =   Workbook.createWorkbook(os,wb);  
   
  // 读取第一张工作表  
          WritableSheet   ws   =   rwb.getSheet(0);    
   
   
  //获得第一张工作表的第一个单元格对象  
  WritableCell   wc   =   ws.getWritableCell(0,   0);  
   
  System.out.println("读出值了吗?"+wc.getContents()+"     !");  
   
   
   
  // 向表中添加记录  
  int   rows=1;//定义默认的行  
  for(int   i=0;i<array.size();i++){  
  ShuiXiDataCollectionBean   collections   =(ShuiXiDataCollectionBean)array.get(i);  
  // 水系名称  
  Label   lable0   =   new   Label(0,rows,collections.getName());        
  ws.addCell(lable0);  
  rows=rows+1;  
  }  
   
   
   
   
  // 写入Excel对象  
  rwb.write();  
   
  // 关闭可写入的Excel对象  
  rwb.close();  
  // 关闭只读的Excel对象  
  wb.close();  
   
   
   
   
  }   catch   (Exception   e)   {  
        throw   new   Exception("坏了,文件没找着呀~~!");  
  }    
   
  return   new   ActionForward(mapping.getInput());  
  }  
   
  }

 

 

//

http://topic.csdn.net/t/20040508/11/3041188.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值