解析Excel和Dbf

    技术2022-05-20  37

    Workbook wb = Workbook.getWorkbook(tempFile);                     Sheet sheet = wb.getSheet(0);                                         int row = sheet.getRows();                                         if(row<=1){ //无数据                         return -9999;                     }                                         int cols= sheet.getColumns();                     log.info("列数"+cols);                     if(cols!=2){                         return -10000;//数据格式不正确                     }                                         String[] strCell = new String[cols];                                         for(int i=1;i<row;i++){                         Cell[] Cell = sheet.getRow(i);                         for(int j =0 ;j<cols;j++){                             try{                                 strCell[j]= Cell[j].getContents().trim();                             }catch(Exception e){                                 strCell[j]="";                             }                         }                         sql = "insert into "+tempTable+" (msisdn,push_title,flag) values(?,?,1)";                         batchSql.addBatch(sql, new Object[]{strCell[0],strCell[1]});                               }

     

     

    com.linuxense.javadbf.DBFReader reader = new com.linuxense.javadbf.DBFReader(                         new FileInputStream(tempFile));                 reader.setCharactersetName("GBK");                 int recordRowCount = reader.getRecordCount();                 int recordColCount = reader.getFieldCount();                 if (recordRowCount == 0) {                     return -9999;                 }                 if (recordColCount != 2) {                     return -10000;                 }                 sql = "";                 for (int i = 0; i < recordColCount; i++) {                     int type = reader.getField(i).getDataType();                     switch (type) {                     case DBFField.FIELD_TYPE_N:                         reader.getField(i).setDataType(DBFField.FIELD_TYPE_C);                         break;                     case DBFField.FIELD_TYPE_C:                         reader.getField(i).setDataType(DBFField.FIELD_TYPE_C);                         break;                     case DBFField.FIELD_TYPE_F:                         reader.getField(i).setDataType(DBFField.FIELD_TYPE_C);                         break;                     case DBFField.FIELD_TYPE_L:                         reader.getField(i).setDataType(DBFField.FIELD_TYPE_C);                         break;                     case DBFField.FIELD_TYPE_D:                         reader.getField(i).setDataType(DBFField.FIELD_TYPE_C);                         break;                     default:                         recordColCount--;                         break;                     }                 }                 String[] strCell = new String[recordColCount];                 for (int i = 0; i < recordRowCount; i++) {                     Object[] objs = reader.nextRecord();                     if (objs.length > 0) {                         for (int j = 0; j < objs.length; j++) {                             try {                                 strCell[j] = (objs[j] + "").trim().replace("'",                                         "");                             } catch (Exception e) {                                 strCell[j] = "";                             }                         }                         sql = "insert into " + tempTable                                 + " (msisdn,push_title,flag) values(?,?,1)";                         batchSql.addBatch(sql, new Object[] { strCell[0],                                 strCell[1] });                     }


    最新回复(0)