六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 33|回复: 0

在struts中应用JXL读写EXCEL

[复制链接]

升级  86.33%

139

主题

139

主题

139

主题

举人

Rank: 3Rank: 3

积分
459
 楼主| 发表于 2013-1-15 02:41:06 | 显示全部楼层 |阅读模式
在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
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表