<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    xhchc

    危波帆墻,笑談只在桃花上;與誰共尚,風吹萬里浪; 相依相偎,不做黃泉想;莫惆悵,碧波潮生,一蕭自狂放……

     

    excel文件導入數據庫

    /***************************************************************************************************
     *類表述信息:針對用戶對象操作進行的一系列操作分派
     *@author 利安寧
     *@version 1.0  2008.5.20
     *@since  jdk1.4.0_06
    ***************************************************************************************************/
    package org.bussiness.utility.subjectByformula;
    import java.io.File;
    import java.io.IOException;
    import java.sql.Connection;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.Date;
    import java.sql.SQLException;
    import java.sql.Statement;
    import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.Iterator;
    import java.util.List;
    import java.util.Map;
    import java.util.Set;
    import java.util.regex.Pattern;

    import jxl.*;
    import jxl.read.biff.BiffException;
    import jxl.Sheet;

    public class FormulaLoad2Db {

     private static final String filePath = "d:\\健康保險統計制度統計指標.xls";

     /**
      * 根據給定的路徑讀入excel文件
      * @param path是文件路徑
      * @return List是對bean的封裝
      * @author 利安寧
      * @version 1.0 2008.5.26
      */
     private List readExcelContext(String path) {
      List list=new ArrayList();
      Map markermap=new HashMap();
      File file = new File(path);
      Workbook wb = null;
      Sheet arySheet=null;
      try {
       wb = Workbook.getWorkbook(file);
       Sheet[] arySheets = wb.getSheets();
       for(int i=0; i<arySheets.length; i++){
        arySheet = arySheets[i];
        int startRow=1000;
        int endRow=0;
        int startColumn=0;
        for(int ii=0;ii<arySheet.getRows();ii++){
         for(int j=0;j<arySheet.getColumns();j++){
          String strCell=arySheet.getCell(j, ii).getContents().trim();
          if(strCell.length()>0 &&  strCell.matches("[a-z]?\\d{8,10}")){
           if(startRow>ii){
            startRow=ii;     
           }
           endRow=ii;
           startColumn=j;
          }
         }
        }
        endRow++;
    //    System.out.println(startRow+" "+endRow+" "+startColumn);
        if(startRow>endRow){
         System.out.println("此為空sheet");
        }else{
    //     System.out.println(excel2List(arySheet,startRow,endRow,startColumn).size());
         list=Excel2List(arySheet,startRow,endRow,startColumn);
         loadDataToDb(list);
         insertByName("all");
        }
       }
      } catch (BiffException e) {
       e.printStackTrace();
      } catch (IOException e) {
       e.printStackTrace();
      } catch (Exception e) {
       e.printStackTrace();
      } finally {
       wb.close();
      }
      return list;
     }
     
     /**
      * 根據給定的Sheet,解析excel,封裝成bean放到List中
      * @param arySheet是給定的Sheet
      * @param startColumns是讀取Sheet的開始行
      * @param endColumns是讀取Sheet的結束行
      * @return List是對bean的封裝
      * @author 利安寧
      * @version 1.0 2008.5.26
      */
     private List Excel2List(Sheet arySheet,int startColumns,int endColumns,int columns ){
      List list=new ArrayList();
      String matchStr="acegikmo";
      IndexBean ib = null;
      Cell[] cell1=arySheet.getColumn(1);
      int endRows = arySheet.getRows();
      String roleId="0" ;
      String pp;
      String s="-1";
      for (int startRow =startColumns; startRow <endColumns; startRow++) {
       String a=arySheet.getCell(columns, startRow).getContents().trim();
       String b=arySheet.getCell(columns+1, startRow).getContents().trim();
       String c=arySheet.getCell(columns+2, startRow).getContents().trim();
       String d=arySheet.getCell(columns+3, startRow).getContents().trim().equals("產")?"1":"-1";
       
       String e=arySheet.getCell(columns+4, startRow).getContents().trim().equals("壽")?"1":"-1";
       String f=arySheet.getCell(columns+5, startRow).getContents().trim().equals("再")?"1":"-1";
       String g=arySheet.getCell(columns+6, startRow).getContents().trim().equals("集")?"1":"-1";
       String h=arySheet.getCell(columns+7, startRow).getContents().trim().equals("資")?"1":"-1";
       
       String i=arySheet.getCell(columns+8, startRow).getContents().trim().equals("快")?"1":"-1";
       String j=arySheet.getCell(columns+9, startRow).getContents().trim().equals("月")?"1":"-1";
       String k=arySheet.getCell(columns+10, startRow).getContents().trim().equals("季")?"1":"-1";
       String l=arySheet.getCell(columns+11, startRow).getContents().trim().equals("半年")?"1":"-1";
       
       String m=arySheet.getCell(columns+12, startRow).getContents().trim().equals("年")?"1":"-1";
       String n=arySheet.getCell(columns+13, startRow).getContents().trim().equals("年度")?"1":"-1";
       String o=arySheet.getCell(columns+14, startRow).getContents().trim().equals("1")?"1":"-1";
       String p=arySheet.getCell(columns+15, startRow).getContents().trim();
       
       String q=arySheet.getCell(columns+16, startRow).getContents().trim();
       String r=arySheet.getCell(columns+17, startRow).getContents().trim();
       if(arySheet.getColumns()>=19){
         s=arySheet.getCell(columns+18, startRow).getContents().trim().equals("1")?"1":"-1";
       }
       if(arySheet.getCell(0, startRow).getType()==CellType.EMPTY||!arySheet.getCell(0, startRow).getContents().trim().matches("[a-z]?\\d{8,10}")||!a.matches("[u4e00-u9fa5]+")){
        continue;
       }
       
       if(c.equals("負債")){
        c="1";
        roleId="1002";
       }
       if(c.equals("權益")){
        c="2";
        roleId="1002";
       }
       if(c.equals("損益")){
        c="3";
        roleId="1002";
       }
       if(c.equals("現金流")){
        c="4";
        roleId="1002";
       }
       if(c.equals("資產")){
        c="5";
        roleId="1002";
       }
       if(c.equals("資金")){
        c="6";
        roleId="1002";
       }
       if(c.equals("統計")){
        c="7";
        roleId="1003";
        if(f.equals("再")){
         roleId="1005";
        }
        if(a.substring(0, 4).matches("\\d{4}")){
         if(6118<=Integer.parseInt(a.substring(0, 4))&&Integer.parseInt(a.substring(0, 4))>=6121&&Integer.parseInt(a.substring(0, 4))==6151){
          roleId="1004";
         }
        }
       }
       if(roleId.equals("0")){
        System.out.println(startRow+"驗證錯誤!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
       }   
       if(p.equals("0")||p.equals("1")||p.equals("2")||p.equals("9")){
        pp=p;
       }else{
        pp="-1";
       }
      
       if(r.equals("總公司報送")){
        r="1";
       }
       if(r.length()==0){
        r="3";
       }
       
       ib=new IndexBean();
       ib.setInfoID(a);
       ib.setDefName(b);
       ib.setDefType(c);
       ib.setRole_Id( Integer.parseInt(roleId));
       ib.setCompanyWealth(d);
       ib.setCompanyLife(e);
       ib.setCompanyReinsurance(f);
       ib.setCompanyGroup(g);
       ib.setCompanyAssets(h);
       ib.setReportF(i);
       ib.setReportM(j);
       ib.setReportQ(k);
       ib.setReportH(l);
       ib.setReportY(m);
       ib.setReportN(n);
       ib.setIfCollect(Integer.parseInt(o));
       ib.setIfGroup(Integer.parseInt(pp));
       ib.setRptCode(q);
       ib.setLevels(r);
       ib.setIfReport(s);
       ib.setOperate("利安寧");
       ib.setOprDate( new Date( new java.util.Date().getTime()));
       ib.setRemark("待寫");
       
       int cou=b.lastIndexOf("-"); 
       if(cou!=-1){
        String paterstring=b.substring(0, cou).trim();
       L2: for(int ii=4;ii<cell1.length;ii++){
         if(paterstring.equalsIgnoreCase(cell1[ii].getContents().trim())){
          String scell=arySheet.getCell(0, cell1[ii].getRow()).getContents().trim();
          ib.setParentId(scell);
          break L2;
         }
         else{
          ib.setParentId(a);
         }
        }
          }else{
           ib.setParentId(a);
          }
       list.add(ib);
      }
      return list;
     }
     /**
      *把list中的bean插入到數據庫
      * @param list
      * @return beanloon是判斷是否全都讀入到數據庫中
      * @author 利安寧
      * @version 1.0 2008.5.20
      * @throws Exception
      */
     private boolean loadDataToDb(List list) throws Exception {
      Connection conn = null;
      PreparedStatement pstm = null;
      int [] r ; 
      int count=0;
      try {
       conn = JdbcUtil.getConnection();
       String sql = "insert into ins_info_def_temp(info_id,def_name,parent_id,role_id ,def_type ,company_wealth ,company_life,company_reinsurance,company_group ,company_assets ,report_f,report_m,report_q,report_h,report_n ,report_a,if_collect,if_group,rpt_code,levels,if_report,def_flag,operate,opr_date,remark) values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
       pstm = conn.prepareStatement(sql);
       Iterator it = list.iterator();
       while (it.hasNext()) {
        count++;
        IndexBean ib = (IndexBean) it.next();
        pstm.setString(1,ib.getInfoID());
        pstm.setString(2,ib.getDefName());
        pstm.setString(3,ib.getParentId());
        pstm.setInt(4,ib.getRoleId());
        pstm.setString(5, ib.getDefType());
        pstm.setString(6,ib.getCompanyWealth()); 
        pstm.setString(7,ib.getCompanyLife());
        pstm.setString(8,ib.getCompanyReinsurance());
        pstm.setString(9,ib.getCompanyGroup());
        pstm.setString(10,ib.getCompanyAssets());
        pstm.setString(11,ib.getReportF());  
        pstm.setString(12,ib.getReportM());
        pstm.setString(13,ib.getReportQ());
        pstm.setString(14,ib.getReportH());
        pstm.setString(15,ib.getReportY());
        pstm.setString(16,ib.getReportN());  
        pstm.setInt(17,ib.getIfCollect());
        pstm.setInt(18,ib.getIfGroup());
        pstm.setString(19,ib.getRptCode());
        pstm.setString(20,ib.getLevels());
        pstm.setString(21,ib.getIfReport());
        pstm.setString(22,"1");
        pstm.setString(23,ib.getOperate());
        pstm.setDate(24,ib.getOprDate());
        pstm.setString(25,ib.getRemark());
    //    System.out.println(ib.getInfoID());
        pstm.executeUpdate();
       }
       conn.commit();
      } catch (SQLException e) {
       e.printStackTrace();
       conn.rollback();
      } finally {
       try {
        conn.close();
       } catch (SQLException e) {
        e.printStackTrace();
        return false;
       }
      }
      return true;
     }
     /**
      *把用戶要求的記錄插入到數據庫中,如:產、壽、再、集、資。
      * @param str
      * @return beanloon是判斷是否全都讀入到數據庫中
      * @author 利安寧
      * @version 1.0 2008.6.6
      * @throws Exception
      */
     public boolean insertByName(String str) throws Exception{
      Connection conn = null;
      Statement pstm = null;
      Statement pstm1 = null;
      String delsql=null;
      String insertsql=null;
      String deletesql=null;
      try {
       conn = JdbcUtil.getConnection();
       if(str.equals("all")){
        delsql="delete from ins_info_def where info_id in (select info_id from ins_info_def_temp ) ";
        insertsql = "insert into ins_info_def select * from ins_info_def_temp";
       }
       if(str.equals("產")){
        delsql="delete from ins_info_def where info_id in (select info_id from ins_info_def_temp where COMPANY_WEALTH='1') ";
        insertsql = "insert into ins_info_def select * from ins_info_def_temp where  COMPANY_WEALTH='1' ";
       }
       if(str.equals("壽")){
        delsql="delete from ins_info_def where info_id in (select info_id from ins_info_def_temp where COMPANY_LIFE='1') ";
        insertsql = "insert into ins_info_def select * from ins_info_def_temp where  COMPANY_LIFE='1' ";
       }
       if(str.equals("再")){
        delsql="delete from ins_info_def where info_id in (select info_id from ins_info_def_temp where COMPANY_REINSURANCE='1') ";
        insertsql = "insert into ins_info_def select * from ins_info_def_temp where  COMPANY_REINSURANCE='1' ";
       }
       if(str.equals("集")){
        delsql="delete from ins_info_def where info_id in (select info_id from ins_info_def_temp where COMPANY_GROUP='1') ";
        insertsql = "insert into ins_info_def select * from ins_info_def_temp where  COMPANY_GROUP='1'";
       }
       if(str.equals("資")){
        delsql="delete from ins_info_def where info_id in (select info_id from ins_info_def_temp where COMPANY_ASSETS='1') ";
        insertsql = "insert into ins_info_def select * from ins_info_def_temp where  COMPANY_ASSETS='1'";
       }
       pstm = conn.createStatement();
       pstm.executeUpdate(delsql);
       pstm.executeUpdate(insertsql);
       deletesql="delete ins_info_def_temp";
       pstm1=conn.createStatement();
       pstm1.executeUpdate(deletesql);
       conn.commit();
      } catch (SQLException e) {
       conn.rollback();
       e.printStackTrace();
      } finally {
       try {
        conn.close();
       } catch (SQLException e) {
        e.printStackTrace();
        return false;
       }
      }
      return true;
     }
     
     //測試代碼
     public static void main(String args[]){
       FormulaLoad2Db fl=new FormulaLoad2Db();
       System.out.println(new java.util.Date());
       List list=fl.readExcelContext(filePath);
       System.out.println(list.size());
       System.out.println(new java.util.Date());
       System.out.println("完");
     }
    }

    posted on 2008-08-06 14:06 chu 閱讀(321) 評論(0)  編輯  收藏


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     

    導航

    統計

    常用鏈接

    留言簿(2)

    隨筆檔案

    我的鏈接

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 日韩一区二区a片免费观看| 2021国内精品久久久久精免费| 国产高清免费视频| 午夜亚洲AV日韩AV无码大全| 免费无码作爱视频| 亚洲Av综合色区无码专区桃色| 久久青青草原国产精品免费| 亚洲AV无码第一区二区三区| 四虎国产精品永久免费网址| 久久亚洲AV无码精品色午夜麻豆 | 中文字幕成人免费高清在线视频| 日本最新免费不卡二区在线| 亚洲AV无码一区二区大桥未久| 国产无遮挡又黄又爽免费视频| 男男黄GAY片免费网站WWW| 亚洲av无码国产精品色在线看不卡| 麻豆亚洲AV成人无码久久精品 | 99久久99久久精品免费看蜜桃 | 在线观看亚洲一区二区| 中文字幕无码视频手机免费看 | 国产成人高清精品免费观看| 亚洲精品国产品国语在线| 99久热只有精品视频免费看 | 女性无套免费网站在线看| 另类专区另类专区亚洲| 久久伊人亚洲AV无码网站| 精品免费视在线观看| 亚洲免费观看网站| 免费看国产一级特黄aa大片| 精品无码一级毛片免费视频观看| 亚洲无码在线播放| 黄在线观看www免费看| 国产精品亚洲综合| 亚洲av永久无码精品漫画| 黄色网址免费观看| 免费国产va视频永久在线观看| 亚洲日本va中文字幕久久| AV片在线观看免费| 精品国产呦系列在线观看免费 | 国产在线19禁免费观看| 国内少妇偷人精品视频免费|