导出EXCEL

package com.wms.util;

import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.util.ArrayList;
import java.util.HashMap;
import oracle.jdbc.driver.OracleTypes;
import org.apache.log4j.Logger;
import com.wms.webapp.bean.PageBean;
import com.wms.webapp.dao.BaseDAO;

 

/**
 * @classfuction 导出EXCEL DAO
 * @author huangqixing
 * @date 2007-6-12
 */
public class DataOutExcelDao extends BaseDAO{
 /**
  * 申明变量
  */
 private ArrayList arraylist = null;  //总集合
 private ArrayList columnvalueslist = null;  //数据集合
 String[] columnname = null;//列名
 String[] columnvalues = null;//列数据集
 HashMap hm =  new HashMap();
 
 private Logger log = Logger.getLogger(DataOutExcelDao.class); //输出日志
  
 /**
    * @methodname getBaseFeelist<费用信息>
    * @return hm<HashMap>
    *
    */
   public HashMap getBaseFeelist(){
     String plsql = "{call WMS_BASE_FEE_SELE(?,?,?,?,?,?,?,?,?,?,?,?,?,?)}";
     getConnection();
  if (conn != null) {
   try {
    cst = conn.prepareCall(plsql);
    cst.setString(1, null);// 信息seq
    cst.setString(2, null);//费用代码
    cst.setString(3, null);//费用名称
    cst.setString(4, null);//计费方式
    cst.setString(5, null);//是否可用
    cst.setString(6, "A");// 查询类型 L:默认列表 Q:查询列表 V:查看详细
    cst.setString(7, null);//排序字段
    cst.setString(8, null);//排序模式 ASC:升序 DESC:降序
    cst.setFloat(9, 0); //当前记录行数
    
    //返回值
    cst.registerOutParameter(10, OracleTypes.NUMBER);// 返回总记录数
    cst.registerOutParameter(11, OracleTypes.NUMBER);// Oracle系统错误号
    cst.registerOutParameter(12, OracleTypes.NUMBER);// 业务返回值
    // 1:成功 2:警告
    // -1:失败
    cst.registerOutParameter(13, OracleTypes.VARCHAR);// 程序编号
    // WMS_BASE_FEE
    cst.registerOutParameter(14, OracleTypes.CURSOR);// 返回游标
    cst.execute();
    int maxRowCount = Integer.parseInt(cst.getObject(10).toString());
    if (maxRowCount == 0) {
     return null;
    }
    rset = (ResultSet) cst.getObject(14);
    columnvalueslist = new ArrayList();   //数据集合
    ResultSetMetaData metadata = rset.getMetaData();
    int colcount = metadata.getColumnCount();
    columnname = new String[colcount];
    
    while (rset.next()) {
     /*
      * 遍历<列集>
      */
     columnvalues = new String[colcount];
     columnvalues[0]=rset.getString(2);
     columnvalues[1]=rset.getString(3);
     columnvalues[2]=rset.getString(7);
     columnvalues[3]=rset.getString(8);
     columnvalues[4]=rset.getString(9);
     columnvalues[5]=rset.getString(10); 
     columnvalueslist.add(columnvalues);
    }
     /*
      * 获取<表头>
      */
    columnname[0]= metadata.getColumnName(2);
    columnname[1]= metadata.getColumnName(3);
    columnname[2]= metadata.getColumnName(7);
    columnname[3]= metadata.getColumnName(8);
    columnname[4]= metadata.getColumnName(9);
    columnname[5]= metadata.getColumnName(10);
    
    /*
     * 用hm<HaspMap>存放列名,以及列集
     */
    hm.put(0, columnname);
    hm.put(1, columnvalueslist);
   }
  catch (Exception e) {
   e.printStackTrace();
  } finally {
   CloseResultSet();
   CloseCallableStatement();
   disConnection();
  }

  }
  return hm;
    } 

 

package com.wms.util;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import jxl.*;
import jxl.write.Label;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
import jxl.write.WriteException;
import jxl.write.biff.RowsExceededException;

import java.io.*;

//导入EXCEL
/******导入EXCEL-执行端******/
public class DataOutExcelCon {
 
 public int WriteDataToExcel(String opseq,String tablepath,String tablename) throws RowsExceededException, WriteException, IOException{
  ArrayList listall = null; //表数据集合
  HashMap totallist = new HashMap(); //总数据集
  ArrayList listsub = null;//子集合
  String [] title = null;//表头
  int flag = -1;
 
  DataOutExcelService does = new DataOutExcelService();
  System.out.print("opseq="+opseq);
  totallist = does.getDataAndTitle(opseq);
  System.out.println("totallist.size"+totallist.size());
  System.out.println("tablename"+tablename);
  title =   (String[]) totallist.get(0); //获取表头
  listall = (ArrayList) totallist.get(1);//获取数据集
  System.out.println("---------------"+listall.size());
      //表名:tablename
   WritableWorkbook workbook = Workbook.createWorkbook(new File(tablepath));
   //工作薄:tablename
   WritableSheet sheet = workbook.createSheet(tablename,0);
   for(int i = 0; i<title.length;i++){
    Label label=new Label(i,0,title[i]);
         //将定义好的单元格添加到工作表中
         sheet.addCell(label);
    }
   int rows = 1; //行数
   Iterator iter = listall.iterator();
  while (iter.hasNext()) {
   String[] value = (String[]) iter.next();
   for (int column = 0 ; column < value.length; column++) {
    sheet.addCell(new Label(column, rows, value[column]));
   }
   rows++;
  }
   workbook.write();
   workbook.close();
   flag = 1;
  return flag;
 }
 }

package com.wms.util;

import java.util.ArrayList;
import java.util.HashMap;

/*****导入EXCEL-提取数据(通用)****/
public class DataOutExcelService {
 HashMap listall = new HashMap();//费用集合:数据集和表头集合
  public HashMap getDataAndTitle(String opseq){
   int seq = Integer.parseInt(opseq);
   switch(seq){
  
        /*************费用信息********************/
     case 1:{
      //费用信息title
      DataOutExcelDao doed = new DataOutExcelDao();
      listall=doed.getBaseFeelist();
     break;
    } 
    
     /**********运输站点信息*******************/
     case 2:{
      DataOutExcelDao doed = new DataOutExcelDao();
      listall=doed.getBasePortlist();
     break;
    }
     /**********公司信息*******************/
     case 3:{
      DataOutExcelDao doed = new DataOutExcelDao();
      listall=doed.getBaseCompanylist();
     break;
    }
     /**********货币信息*******************/
     case 4:{
      DataOutExcelDao doed = new DataOutExcelDao();
      listall=doed.getCurrencylist();
     break;
    }
     /**********标准代码信息*******************/
     case 5:{
      DataOutExcelDao doed = new DataOutExcelDao();
      listall=doed.getBaseStandardlist();
     break;
    }
     /**********库区信息*******************/
     case 6:{
      DataOutExcelDao doed = new DataOutExcelDao();
      listall=doed.getBasePlacelist();
     break;
    }
     /**********仓库信息*******************/
     case 7:{
      DataOutExcelDao doed = new DataOutExcelDao();
      listall=doed.getWareHouselist();
     break;
    }
     /**********运输线路信息*******************/
     case 8:{
      DataOutExcelDao doed = new DataOutExcelDao();
      listall=doed.getBaseLinelist();
     break;
    }
     /**********货品信息*******************/
     case 9:{
      DataOutExcelDao doed = new DataOutExcelDao();
      listall=doed.getGoodsInfolist();
     break;
    }
     /**********货品包装信息*******************/
     case 10:{
      DataOutExcelDao doed = new DataOutExcelDao();
      listall=doed.getGoodsPacklist();
     break;
    }
     /***************************************/
     /**********库位信息**********************/
     case 11:{
      DataOutExcelDao doed = new DataOutExcelDao();
      listall=doed.getLocationlist();
     break;
    }
     /***************************************/
    default : System.out.println("没有定义此条件");
  
   }
  
  
  
   return  listall;
  }
}

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值