<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)

    隨筆檔案

    我的鏈接

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 久久亚洲精精品中文字幕| 亚洲乱亚洲乱少妇无码| 久久久久亚洲精品无码蜜桃| 国产高清对白在线观看免费91 | 亚洲精品无码久久久久sm| 曰批全过程免费视频免费看| 伊人久久亚洲综合影院| 免费无毒a网站在线观看| 亚洲男女内射在线播放| caoporn成人免费公开| 亚洲乱亚洲乱妇无码麻豆| a级精品九九九大片免费看| 亚洲国产精品第一区二区| 精品国产免费人成电影在线观看| 亚洲另类图片另类电影| 成人免费视频观看无遮挡| 亚洲欧美日韩综合久久久久| 国产免费爽爽视频免费可以看| 免费的黄网站男人的天堂| 亚洲综合无码精品一区二区三区| 久久青草91免费观看| 亚洲中文字幕在线无码一区二区| 中文字幕人成无码免费视频| 成人婷婷网色偷偷亚洲男人的天堂| 免费一区二区三区四区五区| 99re6在线视频精品免费| 亚洲欧洲日产专区| 日本一区免费电影| 国产一级一毛免费黄片| 91久久亚洲国产成人精品性色 | 免费毛片a在线观看67194| 亚洲成av人片在线天堂无| 不卡一卡二卡三亚洲| 日本免费网址大全在线观看| 国产精品亚洲а∨无码播放麻豆 | 亚洲国产精品无码久久SM | 国产1024精品视频专区免费| 黄页网站在线免费观看| 亚洲AV无码一区二区三区系列| 久久精品网站免费观看| 精品97国产免费人成视频|