Example usage for org.apache.poi.hssf.usermodel HSSFSheet rowIterator

List of usage examples for org.apache.poi.hssf.usermodel HSSFSheet rowIterator

Introduction

In this page you can find the example usage for org.apache.poi.hssf.usermodel HSSFSheet rowIterator.

Prototype

@Override
public Iterator<Row> rowIterator() 

Source Link

Usage

From source file:com.quix.aia.cn.imo.mapper.InterviewMaintenance.java

License:Open Source License

/**
 * <p>This method performs multiple Interviews Upload through CSV File</p> 
 * @param interviewObj Interview object/*w w  w . j  a va  2 s  . c  o  m*/
 * @param requestParameters Servlet Request Parameter
 */
public Object cSVUpload(Interview interviewObj, HttpServletRequest requestParameters) {
    LocaleObject localeObj = (LocaleObject) requestParameters.getSession()
            .getAttribute(SessionAttributes.LOCALE_OBJ);
    if (interviewObj == null) {
        interviewObj = new Interview();
        return interviewObj;
    }

    //     ResourceBundle msgProps = ResourceBundle.getBundle("configurations");
    //     String interviewPath  = msgProps.getString("InterviewPath");
    Map<String, String> configurationMap = (Map<String, String>) requestParameters.getSession()
            .getAttribute(ApplicationAttribute.CONFIGURATION_PROPERTIES_MAP);
    //String interviewPath  = configurationMap.get("InterviewPath");
    String csv_file_name = "";
    if (requestParameters.getSession().getAttribute("csv_file_name") != null) {
        csv_file_name = (String) requestParameters.getSession().getAttribute("csv_file_name");
    }

    requestParameters.getSession().removeAttribute("csv_file_name");
    String tempDir = System.getProperty("java.io.tmpdir");
    Session session = null;
    int record_created = 0;
    StringBuffer strbuf = new StringBuffer();
    int sucessCnt = 0;
    int m = 0;
    int l = 0;
    int rowCount = 0;
    try {

        String serverFilename = "resources/upload/Excel" + "/" + "INT_" + LMSUtil.getRendomToken();

        File uploadedFolder = new File(serverFilename);
        if (!uploadedFolder.exists()) {
            uploadedFolder.mkdirs();
        }
        if (csv_file_name != null && !csv_file_name.equals("")) {

            byte[] bytearray = (byte[]) requestParameters.getSession().getAttribute("csv_byte_session");
            if (csv_file_name.contains(".xlsx") || csv_file_name.contains(".XLSX")
                    || csv_file_name.contains(".xls") || csv_file_name.contains(".XLS")) {
                try {
                    FileOutputStream stream = new FileOutputStream(serverFilename + "/" + csv_file_name);
                    stream.write(bytearray);
                    stream.close();
                } catch (Exception e) {
                    e.printStackTrace();
                    LogsMaintenance logsMain = new LogsMaintenance();
                    StringWriter errors = new StringWriter();
                    e.printStackTrace(new PrintWriter(errors));
                    logsMain.insertLogs("InterViewMaintenance", Level.SEVERE + "", errors.toString());

                }
            }
            //delete temp directory
            File temp_file = new File(tempDir + "/" + csv_file_name);
            FileUtils.deleteFileNFolder(temp_file);

            // Retrieve datas from CSV
            /*FileInputStream fileInputStream = new FileInputStream(new File(serverFilename+"/"+csv_file_name));
            BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(fileInputStream));*/
            BufferedReader bufferedReader = new BufferedReader(
                    new InputStreamReader(new FileInputStream(serverFilename + "/" + csv_file_name), "UTF-8"));

            String records = null;
            String interviewType = "", interviewSessionName = "", interviewDate = "", startTime = "",
                    endTime = "", location = "", interviewMaterial = "", estimatedCondidates = "", buName = "",
                    distName = "", cityName = "", sscName = "", branchName = "", officeName = "";
            int buCode = 0, distCode = 0, branchCode = 0;
            String cityCode = "", sscCode = "", officeCode = "";
            session = HibernateFactory.openSession();
            ImoUtilityData imoUtilityData = new ImoUtilityData();

            User userObj = (User) requestParameters.getSession().getAttribute("currUserObj");
            interviewObj.setCreationDate(new Date());
            interviewObj.setCreatedBy(userObj.getStaffLoginId());
            ;
            interviewObj.setModificationDate(new Date());
            interviewObj.setModifiedBy(userObj.getStaffLoginId());
            ;
            interviewObj.setStatus(true);
            interviewObj.setToken(LMSUtil.getRendomToken());

            AuditTrailMaintenance auditTrailMaintenance = new AuditTrailMaintenance();
            boolean flag = false;
            LMSUtil lmsUtil = new LMSUtil();

            FileInputStream fis = null;
            fis = new FileInputStream(serverFilename + "/" + csv_file_name);
            HSSFWorkbook workbook = new HSSFWorkbook(fis);
            HSSFSheet sheet = workbook.getSheetAt(0);

            Iterator rows = sheet.rowIterator();
            int cellCount = 0;

            while (rows.hasNext()) {
                rowCount++;
                HSSFRow row = (HSSFRow) rows.next();
                Iterator cells = row.cellIterator();

                List data = new ArrayList();
                while (cells.hasNext()) {
                    if (cellCount == 0) {
                        break;
                    }

                    HSSFCell cell = (HSSFCell) cells.next();
                    System.out.println("cell contenct " + cell);

                    if (cellCount == 1) {
                        interviewType = cell.toString();
                        if (interviewType.equals("")) {
                            flag = true;
                            strbuf.append(localeObj.getTranslatedText("Required Interview Type at row number")
                                    + rowCount);
                            strbuf.append("\n");
                            break;
                        } else {
                            interviewObj.setInterviewType(interviewType);
                        }
                    }

                    if (cellCount == 2) {
                        interviewSessionName = cell.toString();
                        interviewObj.setInterviewSessionName(interviewSessionName);
                        if (interviewSessionName.equals("")) {
                            flag = true;
                            strbuf.append(
                                    localeObj.getTranslatedText("Required Interview Session Name at row number")
                                            + rowCount);
                            strbuf.append("\n");
                            break;

                        }
                        /*else if(checkDuplicateInterview(interviewObj)){
                            flag=true;
                            strbuf.append("Duplicate Interview Name at row number "+rowCount);
                            break;
                        }*/
                        else {
                            interviewObj.setInterviewSessionName(interviewSessionName);
                        }
                    }

                    if (cellCount == 3) {
                        //System.out.println("date --> "+cell.getDateCellValue()+"");
                        interviewDate = cell.getDateCellValue() + "";
                        interviewDate = LMSUtil.convertExcelDateToString(interviewDate);

                        Date intDate = LMSUtil.convertExcelDateToDate(interviewDate);
                        if (interviewType.equals("")) {
                            flag = true;
                            strbuf.append(localeObj.getTranslatedText("Required Interview Date at row number")
                                    + rowCount);
                            strbuf.append("\n");
                            break;
                        } else {
                            Date today = new Date();
                            String toDayStr = LMSUtil.convertDateToString(today);
                            today = LMSUtil.convertStringToDate(toDayStr);
                            if (lmsUtil.validateDDMMYYYY(interviewDate)) {
                                interviewObj.setInterviewDate(intDate);

                                if (intDate.before(today)) {
                                    flag = true;
                                    strbuf.append(localeObj.getTranslatedText(
                                            "Interview Date should not be before Today at row number")
                                            + rowCount);
                                    strbuf.append("\n");
                                    break;
                                }
                            } else {
                                flag = true;
                                strbuf.append(localeObj.getTranslatedText(
                                        "Date Format Invalid.Should Be DD/MM/YYYY at line number") + l);
                                strbuf.append("\n");
                                break;
                            }
                        }
                    }

                    if (cellCount == 4) {

                        startTime = cell.getDateCellValue() + "";
                        if (interviewType.equals("")) {
                            flag = true;
                            strbuf.append(
                                    localeObj.getTranslatedText("Required StartTime at row number") + rowCount);
                            strbuf.append("\n");
                            break;
                        } else {
                            interviewObj.setStartTime((LMSUtil.converExcelTimetoDateHHMMAMPM1(startTime)));
                        }
                    }

                    if (cellCount == 5) {
                        endTime = cell.getDateCellValue() + "";
                        Date e1 = LMSUtil.converExcelTimetoDateHHMMAMPM1(endTime);
                        Date s1 = LMSUtil.converExcelTimetoDateHHMMAMPM1(startTime);
                        if (interviewType.equals("")) {
                            flag = true;
                            strbuf.append(
                                    localeObj.getTranslatedText("Required EndTime at row number") + rowCount);
                            strbuf.append("\n");
                            break;
                        } else if (e1.before(s1) || e1.equals(s1)) {
                            flag = true;
                            strbuf.append(localeObj.getTranslatedText(
                                    "End Time should be earlier than Start Time at row number") + rowCount);
                            strbuf.append("\n");
                            break;
                        } else {
                            interviewObj.setEndTime((LMSUtil.converExcelTimetoDateHHMMAMPM1(endTime)));
                        }
                    }

                    if (cellCount == 6) {
                        location = cell.toString();
                        if (location.equals("")) {
                            flag = true;
                            strbuf.append(
                                    localeObj.getTranslatedText("Required LOCATION at row number") + rowCount);
                            strbuf.append("\n");
                            break;
                        } else {
                            interviewObj.setLocation(location);
                        }
                    }

                    if (cellCount == 7) {
                        interviewMaterial = cell.toString();
                        if (interviewMaterial.equals("")) {
                            flag = true;
                            strbuf.append(
                                    localeObj.getTranslatedText("Required Interview Material at row number")
                                            + rowCount);
                            strbuf.append("\n");
                            break;
                        } else {
                            interviewObj.setInterviewMaterial(interviewMaterial);
                        }
                    }

                    if (cellCount == 8) {
                        // estimatedCondidates = cell.getNumericCellValue()+"";
                        int estimate = (int) cell.getNumericCellValue();
                        System.out.println("esimate time " + estimate);
                        //                  if(estimatedCondidates.equals("")){
                        //                     interviewObj.setEstimatedCondidates(0);
                        //                  }
                        //                  else if(!LMSUtil.validInt(estimatedCondidates)){
                        //                     flag=true;
                        //                     strbuf.append("Estimated Candidates Should be a Number at row number "+rowCount);
                        //                     break;
                        //                  }

                        interviewObj.setEstimatedCondidates(estimate);

                    }

                    if (cellCount == 9) {
                        buName = cell.toString();
                        if (buName.equals("")) {
                            flag = true;
                            strbuf.append(localeObj.getTranslatedText("Required BU at row number") + rowCount);
                            strbuf.append("\n");
                            break;
                        } else {
                            buCode = imoUtilityData.getBuCodeBasedOnBuName(buName);
                            if (buCode == 0) {
                                flag = true;
                                strbuf.append(
                                        localeObj.getTranslatedText("Invalid BU Name  row number") + rowCount);
                                strbuf.append("\n");
                                break;
                            } else {
                                interviewObj.setBuCode(buCode);
                            }
                        }
                    }
                    if (cellCount == 10) {
                        distName = cell.toString();
                        if (distName.equals("")) {
                            interviewObj.setDistrict(0);
                        }

                        else {
                            distCode = imoUtilityData.getDistrictCodeBasedOnDistrictName(distName);
                            if (distCode == 0) {
                                flag = true;
                                strbuf.append(localeObj.getTranslatedText("Invalid District Name at row number")
                                        + rowCount);
                                strbuf.append("\n");
                                break;
                            } else {
                                flag = imoUtilityData.checkLevelOfCode(buCode, distCode, 0, "0", "0", "0");
                                if (flag == true) {
                                    strbuf.append(localeObj.getTranslatedText(
                                            "District Name Not available In this Bu  at row number")
                                            + rowCount);
                                    strbuf.append("\n");
                                    break;
                                }

                                interviewObj.setDistrict(distCode);
                            }
                        }
                    }

                    if (cellCount == 11) {
                        branchName = cell.toString();
                        if (branchName.equals("")) {
                            interviewObj.setBranchCode(0);
                        }

                        else {

                            branchCode = imoUtilityData.getBranchCodeBasedOnBranchName(branchName);
                            if (branchCode == 0) {
                                flag = true;
                                strbuf.append(localeObj.getTranslatedText("Invalid Branch Name  at row number")
                                        + rowCount);
                                strbuf.append("\n");
                                break;
                            } else {
                                flag = imoUtilityData.checkLevelOfCode(buCode, distCode, branchCode, "0", "0",
                                        "0");
                                if (flag == true) {
                                    strbuf.append(localeObj.getTranslatedText(
                                            "Branch Name Not available In this District at row number")
                                            + rowCount);
                                    strbuf.append("\n");
                                    break;
                                }
                                interviewObj.setBranchCode(branchCode);
                            }
                        }
                    }

                    if (cellCount == 12) {

                        cityName = cell.toString();
                        if (cityName.equals("")) {
                            interviewObj.setCityCode("0");
                        }

                        else {
                            cityCode = imoUtilityData.getCityCodeBasedOnDistrictName(cityName);
                            if (cityCode.equals("0")) {
                                flag = true;
                                strbuf.append(localeObj.getTranslatedText("Invalid City Name at row number")
                                        + rowCount);
                                strbuf.append("\n");
                                break;
                            } else {
                                flag = imoUtilityData.checkLevelOfCode(buCode, distCode, branchCode, cityCode,
                                        "0", "0");
                                if (flag == true) {
                                    strbuf.append(localeObj.getTranslatedText(
                                            "City Name Not available In this Branch  at row number")
                                            + rowCount);
                                    strbuf.append("\n");
                                    break;
                                }
                                interviewObj.setCityCode(cityCode);
                            }
                        }
                    }

                    if (cellCount == 13) {
                        sscName = cell.toString();
                        if (sscName.equals("")) {
                            interviewObj.setSscCode("0");
                        } else {
                            sscCode = imoUtilityData.getSSCCodeBasedOnSSCName(sscName);
                            if (sscCode.equals("0")) {
                                flag = true;
                                strbuf.append(localeObj.getTranslatedText("Invalid SSC Name  at row number")
                                        + rowCount);
                                strbuf.append("\n");
                                break;
                            } else {

                                flag = imoUtilityData.checkLevelOfCode(buCode, distCode, branchCode, cityCode,
                                        sscCode, "0");
                                if (flag == true) {
                                    strbuf.append(localeObj.getTranslatedText(
                                            "Ssc Name Not available In this City at row number") + rowCount);
                                    strbuf.append("\n");
                                    break;
                                }
                                interviewObj.setSscCode(sscCode);
                            }
                        }

                    }

                    if (cellCount == 14) {
                        officeName = cell.toString();
                        if (officeName.equals("")) {
                            interviewObj.setOfficeCode("0");
                        } else {
                            officeCode = imoUtilityData.getOfficeCodeBasedOnSSCName(officeName);
                            if (officeCode.equals("0")) {
                                flag = true;
                                strbuf.append(localeObj.getTranslatedText("Invalid Office Name  at row number")
                                        + rowCount);
                                strbuf.append("\n");
                                break;
                            } else {

                                flag = imoUtilityData.checkLevelOfCode(buCode, distCode, branchCode, cityCode,
                                        sscCode, officeCode);
                                if (flag == true) {
                                    strbuf.append(localeObj.getTranslatedText(
                                            "Office Name Not available In this SSC at row number") + rowCount);
                                    strbuf.append("\n");
                                    break;
                                }
                                interviewObj.setOfficeCode(officeCode);
                            }
                        }

                    }

                    cellCount++;

                } // cell while loop

                if (cellCount == 0) {
                    cellCount++;

                } else {
                    if (flag == true) {
                        cellCount = 1;
                        flag = false;
                        strbuf.append("\n");
                        continue;
                    } else {
                        //insertion done here

                        if (userObj.getUserType().equals("AD")) {
                            record_created = insertInterview(interviewObj, requestParameters);
                            sucessCnt++;
                            cellCount = 1;
                        } else {

                            if (userObj.isOfficeLevel()) {
                                if (buCode > 0 && distCode > 0 && !cityCode.equals("0") && !sscCode.equals("0")
                                        && branchCode > 0 && !officeCode.equals("0")) {
                                    record_created = insertInterview(interviewObj, requestParameters);
                                    sucessCnt++;
                                    cellCount = 1;
                                }
                            } else if (userObj.isSscLevel()) {
                                if (buCode > 0 && distCode > 0 && !cityCode.equals("0") && !sscCode.equals("0")
                                        && branchCode > 0) {
                                    record_created = insertInterview(interviewObj, requestParameters);
                                    sucessCnt++;
                                    cellCount = 1;
                                }
                            } else if (userObj.isCityLevel()) {
                                if (buCode > 0 && distCode > 0 && !cityCode.equals("0") && branchCode > 0) {
                                    record_created = insertInterview(interviewObj, requestParameters);
                                    sucessCnt++;
                                    cellCount = 1;
                                }
                            }

                            else if (userObj.isBranchLevel()) {
                                if (buCode > 0 && distCode > 0 && branchCode > 0) {
                                    record_created = insertInterview(interviewObj, requestParameters);
                                    sucessCnt++;
                                    cellCount = 1;
                                }
                            }

                            else if (userObj.isDistrictLevel()) {
                                if (buCode > 0 && distCode > 0) {
                                    record_created = insertInterview(interviewObj, requestParameters);
                                    sucessCnt++;
                                    cellCount = 1;
                                }
                            } else if (userObj.isBuLevel()) {
                                if (buCode > 0) {
                                    record_created = insertInterview(interviewObj, requestParameters);
                                    sucessCnt++;
                                    cellCount = 1;
                                }
                            }
                        }

                        if (record_created > 0) {
                            auditTrailMaintenance.insertAuditTrail(
                                    new AuditTrail(userObj.getStaffLoginId() + "", AuditTrail.MODULE_INTERVIEW,
                                            AuditTrail.FUNCTION_CREATE, interviewObj.toString()));
                        }
                    }
                    flag = false;

                }

            } // row whicle loop

            if (strbuf.length() > 0) {
                ImoUtilityData imoutill = new ImoUtilityData();
                imoutill.summaryReport(strbuf, requestParameters);
            }
        }
    } catch (Exception e) {
        log.log(Level.SEVERE, e.getMessage());
        e.printStackTrace();
    } finally {
        try {
            //HibernateFactory.close(session);
        } catch (Exception e) {

            log.log(Level.SEVERE, e.getMessage());
            e.printStackTrace();
        }
    }

    int failedCnt = rowCount - sucessCnt;
    requestParameters.getSession().setAttribute("strbuf", strbuf);
    requestParameters.getSession().setAttribute("formObj", new PathDetail().getFormObj("InterviewUploadCSV"));
    requestParameters.setAttribute("CacheName", "Interview");
    //if(sucessCnt!=0){ 
    String uploadSucessString = localeObj.getTranslatedText("Number of records uploaded successfully");
    String recoredFailString = localeObj.getTranslatedText("Number of records fail");
    return new ErrorObject(
            uploadSucessString + ":" + sucessCnt + " <br> " + recoredFailString + " :" + (failedCnt - 2) + "  ",
            "", localeObj);
    //}else{
    //return new ErrorObject("The new Holiday csv file uploaded Successfully", "");
    //}

}

From source file:com.quix.aia.cn.imo.mapper.UserMaintenance.java

License:Open Source License

/**
* <p>This method performs call for validation of upload .csv file data 
* and insertion method //from  w ww  .  j  ava2s  .co m
 * & audit trail for holiday update 
* & sets message object in request</p>
* @param Userid 
* @param req Servlet Request Parameter
* @return User object
*/
public Object mapFormCSVUpload(User objToBeMapped, HttpServletRequest req) {
    // TODO Auto-generated method stub
    log.log(Level.INFO, "UserMaintenance --> mapFormCSVUpload");
    LocaleObject localeObj = (LocaleObject) req.getSession().getAttribute(SessionAttributes.LOCALE_OBJ);

    if (objToBeMapped == null) {
        objToBeMapped = new User();
        return objToBeMapped;
    }

    //ResourceBundle msgProps = ResourceBundle.getBundle("configurations");
    //        String userPath  =     //msgProps.getString("UserPath");
    String csv_file_name = "";
    if (req.getSession().getAttribute("csv_file_name") != null) {
        csv_file_name = (String) req.getSession().getAttribute("csv_file_name");

        req.getSession().removeAttribute("csv_file_name");
        String tempDir = System.getProperty("java.io.tmpdir");
        Session session = null;
        int record_created = 0;
        MsgObject msgObj = null;
        User user = new User();
        StringBuffer strbuf = new StringBuffer();

        try {
            int sucessCnt = 0;
            int m = 0;
            int l = 0;
            int rowCount = 0;
            String serverFilename = "resources/upload/userExcel" + "USER_" + LMSUtil.getRendomToken();

            File uploadedFolder = new File(serverFilename);
            if (!uploadedFolder.exists()) {
                uploadedFolder.mkdirs();
            }
            if (csv_file_name != null && !csv_file_name.equals("")) {

                byte[] bytearray = (byte[]) req.getSession().getAttribute("csv_byte_session");
                if (csv_file_name.contains(".xlsx") || csv_file_name.contains(".XLSX")
                        || csv_file_name.contains(".xls") || csv_file_name.contains(".XLS")) {
                    try {
                        FileOutputStream stream = new FileOutputStream(serverFilename + "/" + csv_file_name);
                        stream.write(bytearray);
                        stream.close();
                    } catch (Exception e) {
                        log.log(Level.SEVERE, e.getMessage());
                        e.printStackTrace();
                        LogsMaintenance logsMain = new LogsMaintenance();
                        StringWriter errors = new StringWriter();
                        e.printStackTrace(new PrintWriter(errors));
                        logsMain.insertLogs("UserMaintenance", Level.SEVERE + "", errors.toString());
                    }
                }
                File temp_file = new File(tempDir + "/" + csv_file_name);
                FileUtils.deleteFileNFolder(temp_file);

                String records = null;

                int buCode = 0, distCode = 0, channelCode = 0, branchCode = 0;
                String cityCode = "0", sscCode = "0", officeCode = "0";
                session = HibernateFactory.openSession();
                ImoUtilityData imoUtilityData = new ImoUtilityData();

                User userObj = (User) req.getSession().getAttribute("currUserObj");
                user.setCreationDate(new Date());
                user.setCreatedBy(userObj.getStaffLoginId());
                ;
                user.setModificationDate(new Date());
                user.setModifiedBy(userObj.getStaffLoginId());
                ;
                user.setStatus(true);

                AuditTrailMaintenance auditTrailMaintenance = new AuditTrailMaintenance();

                boolean flag = false;

                FileInputStream fis = null;
                fis = new FileInputStream(serverFilename + "/" + csv_file_name);
                HSSFWorkbook workbook = new HSSFWorkbook(fis);
                HSSFSheet sheet = workbook.getSheetAt(0);

                Iterator rows = sheet.rowIterator();
                int cellCount = 0;
                while (rows.hasNext()) {
                    rowCount++;
                    HSSFRow row = (HSSFRow) rows.next();
                    Iterator cells = row.cellIterator();

                    while (cells.hasNext()) {
                        if (cellCount == 0) {
                            break;
                        }

                        // cellCount++;
                        HSSFCell cell = (HSSFCell) cells.next();
                        System.out.println("cell contenct " + cell.toString());

                        if (cellCount == 1) {
                            if (cell.toString().equals("Y".toUpperCase())) {
                                user.setCho(true);
                                user.setUserType("AD");
                            } else if (cell.toString().equals("N".toUpperCase())) {
                                user.setCho(false);
                                user.setUserType("ST");
                            } else {
                                strbuf.append(localeObj.getTranslatedText("Required Y OR N CHO at row number")
                                        + rowCount + "\n");
                            }
                        }

                        if (cellCount == 2) {
                            if (user.isCho()) {
                                user.setBuCode(0);
                            } else {
                                buCode = imoUtilityData.getBuCodeBasedOnBuName(cell.toString());
                                if (buCode == 0) {
                                    flag = true;
                                    strbuf.append(localeObj.getTranslatedText("Invalid BU Name row number")
                                            + rowCount + "\n");
                                    break;
                                } else {
                                    user.setBuCode(buCode);
                                    user.setBuName(cell.toString());
                                }
                            }

                        }

                        if (cellCount == 3) {
                            if (user.isCho()) {
                                user.setDistrict(0);
                            } else {
                                distCode = imoUtilityData.getDistrictCodeBasedOnDistrictName(cell.toString());
                                user.setDistrict(distCode);
                                user.setDistName(cell.toString());

                            }
                        }

                        if (cellCount == 4) {
                            if (user.isCho()) {
                                user.setBranchCode(9986);
                            } else {
                                branchCode = imoUtilityData.getBranchCodeBasedOnBranchName(cell.toString());
                                user.setBranchCode(branchCode);
                                user.setBranchName(cell.toString());
                            }

                        }

                        if (cellCount == 5) {
                            if (user.isCho()) {
                                user.setCityCode("0");
                            } else {
                                cityCode = imoUtilityData.getCityCodeBasedOnDistrictName(cell.toString());
                                user.setCityCode(cityCode);
                                user.setCityName(cell.toString());

                            }
                        }

                        if (cellCount == 6) {
                            if (user.isCho()) {
                                user.setSscCode("0");
                            } else {
                                sscCode = imoUtilityData.getSSCCodeBasedOnSSCName(cell.toString());
                                user.setSscCode(sscCode);
                                user.setSscName(cell.toString());

                            }
                        }

                        if (cellCount == 7) {
                            if (user.isCho()) {
                                user.setOfficeCode("0");
                            } else {
                                officeCode = imoUtilityData.getOfficeCodeBasedOnSSCName(cell.toString());
                                user.setOfficeCode(officeCode);
                                user.setOfficeName(cell.toString());

                            }
                        }

                        if (cellCount == 8) {
                            int dept = imoUtilityData.getdeptCodeBasedOndeptName(cell.toString());
                            user.setDepartment(dept);
                            user.setDeptName(cell.toString());

                        }
                        if (cellCount == 9) {
                            if (checkLoginID(cell.toString().trim(), 0)) {
                                flag = true;
                                strbuf.append(
                                        localeObj.getTranslatedText("Dublicate STAFF LOGIN ID at row number")
                                                + rowCount + "\n");
                                break;
                            } else {
                                user.setStaffLoginId(cell.toString().toUpperCase());
                            }

                        }
                        if (cellCount == 10) {
                            user.setStaffName(cell.toString());

                        }
                        if (cellCount == 11) {
                            if (checkemilID(cell.toString(), 0)) {
                                flag = true;
                                strbuf.append(localeObj.getTranslatedText("Dublicate Email at row number")
                                        + rowCount + "\n");
                                break;

                            } else {
                                user.setEmail(cell.toString());
                            }

                        }

                        if (cellCount == 12) {
                            user.setContactNo(cell.toString());
                        }

                        if (cellCount == 13) {
                            user.setExtensionNo(cell.toString());
                        }

                        cellCount++;

                    }

                    if (cellCount == 0) {
                        cellCount++;

                    } else {

                        if (flag == true) {
                            cellCount = 1;
                            flag = false;
                            strbuf.append("\n");
                            continue;

                        } else {
                            if (userObj.getUserType().equals("AD")) {
                                msgObj = insertUser(user, req, msgObj);
                                sucessCnt++;
                                cellCount = 1;
                            } else {
                                if (userObj.isOfficeLevel()) {
                                    if (buCode > 0 && distCode > 0 && !cityCode.equals("0")
                                            && !sscCode.equals("0") && branchCode > 0
                                            && !officeCode.equals("0")) {
                                        msgObj = insertUser(user, req, msgObj);
                                        sucessCnt++;
                                        cellCount = 1;
                                    }
                                }

                                else if (userObj.isSscLevel()) {
                                    if (buCode > 0 && distCode > 0 && !cityCode.equals("0")
                                            && !sscCode.equals("0") && branchCode > 0) {
                                        msgObj = insertUser(user, req, msgObj);
                                        sucessCnt++;
                                        cellCount = 1;
                                    }
                                }

                                else if (userObj.isBranchLevel()) {
                                    if (buCode > 0 && distCode > 0 && !cityCode.equals("0")
                                            && !sscCode.equals("0") && branchCode > 0) {
                                        msgObj = insertUser(user, req, msgObj);
                                        sucessCnt++;
                                        cellCount = 1;
                                    }
                                }

                                else if (userObj.isCityLevel()) {
                                    if (buCode > 0 && distCode > 0 && !cityCode.equals("0")) {
                                        msgObj = insertUser(user, req, msgObj);
                                        sucessCnt++;
                                        cellCount = 1;
                                    }
                                } else if (userObj.isDistrictLevel()) {
                                    if (buCode > 0 && distCode > 0) {
                                        msgObj = insertUser(user, req, msgObj);
                                        sucessCnt++;
                                        cellCount = 1;
                                    }
                                } else if (userObj.isBuLevel()) {
                                    if (buCode > 0) {
                                        msgObj = insertUser(user, req, msgObj);
                                        sucessCnt++;
                                        cellCount = 1;
                                    }
                                }

                            }

                            User userAudi = new User(user);
                            log.log(Level.INFO, userAudi.toString());
                            if (!msgObj.equals("0")) {
                                auditTrailMaintenance.insertAuditTrail(new AuditTrail(
                                        String.valueOf(user.getUser_no()), AuditTrail.MODULE_USER,
                                        AuditTrail.FUNCTION_CREATE,
                                        "Action on:INSERT T_USER CREATED,USER_NO:" + user.getUser_no()));
                            } else {
                                auditTrailMaintenance.insertAuditTrail(new AuditTrail(
                                        String.valueOf(user.getUser_no()), AuditTrail.MODULE_USER,
                                        AuditTrail.FUNCTION_FAILED,
                                        "Action on:INSERT T_USER CREATED,USER_NO:" + user.getUser_no()));

                            }

                            flag = false;

                        }

                    }

                }

            }
            if (strbuf.length() > 0) {
                ImoUtilityData imoutill = new ImoUtilityData();
                imoutill.summaryReport(strbuf, req);

            }

            req.getSession().setAttribute("strbuf", strbuf);
            msgObj = new MsgObject("The new User  has been created.");
            req.getSession().setAttribute("msgObject", msgObj);
            req.getSession().setAttribute("formObj", new PathDetail().getFormObj("userUploadCsv"));
            int failedCnt = rowCount - sucessCnt;
            //if(sucessCnt!=0){ 
            String uploadSucessString = localeObj.getTranslatedText("Number of records uploaded successfully");
            String recoredFailString = localeObj.getTranslatedText("Number of records fail");
            return new ErrorObject(uploadSucessString + " :" + sucessCnt + " <br> " + recoredFailString + " :"
                    + (failedCnt - 1) + "  ", "", localeObj);
            //}else{
            //return new ErrorObject("The new Holiday csv file uploaded Successfully", "");
            //}
        } catch (Exception e) {
            log.log(Level.SEVERE, e.getMessage());
            e.printStackTrace();
            LogsMaintenance logsMain = new LogsMaintenance();
            StringWriter errors = new StringWriter();
            e.printStackTrace(new PrintWriter(errors));
            logsMain.insertLogs("UserMaintenance", Level.SEVERE + "", errors.toString());
        } finally {
            try {
                //HibernateFactory.close(session);
            } catch (Exception e) {

                log.log(Level.SEVERE, e.getMessage());
                e.printStackTrace();
            }
        }
    }
    req.getSession().setAttribute("formObj", new PathDetail().getFormObj("userUploadCsv"));
    return new ErrorObject("Please choose the document", " ", localeObj);
}

From source file:com.seer.datacruncher.fileupload.Excel_97_FileReadObject.java

License:Open Source License

@Override
public String parseStream(long schemaId, InputStream ios) {
    List<SchemaFieldEntity> listSchemaFields = schemaFieldsDao.listSchemaFields(schemaId);
    StringBuffer sb = new StringBuffer();
    try {//  ww w.  j a  va 2 s  . c  om
        HSSFWorkbook myWorkBook = new HSSFWorkbook(ios);
        HSSFSheet mySheet = myWorkBook.getSheetAt(0);
        Iterator<Row> rowIter = mySheet.rowIterator();
        sb.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
        int i = 0;
        while (rowIter.hasNext()) {
            if (i++ == 0) {
                //skip table's header
                rowIter.next();
                continue;
            }
            int j = 0;
            sb.append("<" + Tag.TAG_ROOT + ">");
            HSSFRow myRow = (HSSFRow) rowIter.next();
            Iterator<Cell> cellIter = myRow.cellIterator();
            while (cellIter.hasNext()) {
                HSSFCell myCell = (HSSFCell) cellIter.next();
                String fieldValue = myCell.toString().trim();
                if (!listSchemaFields.get(j).getNillable() || fieldValue.length() > 0) {
                    sb.append("<" + listSchemaFields.get(j).getName() + ">")
                            .append(myCell.toString().replaceAll("&", "&amp;"))
                            .append("</" + listSchemaFields.get(j).getName() + ">");
                }
                j++;

                if (j == listSchemaFields.size() && cellIter.hasNext()) {
                    return I18n.getMessage("error.numberFieldsNoMatch");
                } else if (!cellIter.hasNext() && j != listSchemaFields.size()) {
                    return I18n.getMessage("error.numberFieldsNoMatch");
                }
            }
            sb.append("</" + Tag.TAG_ROOT + ">\n");
        }
    } catch (IOException e) {
        logger.error("Error occured during fetch records from excel file.", e);
        return "Could not able to parse Excel file. " + e.getMessage();
    }
    return sb.toString();
}

From source file:com.testmax.util.ExcelSheet.java

License:CDDL license

/**
* This method is used to read the data's from an excel file.
* @param fileName - Name of the excel file.
*//* ww  w.ja va2  s.  co  m*/
private List readExcelFile() {

    List cellDataList = new ArrayList();
    try {

        FileInputStream fileInputStream = new FileInputStream(this.fileName);
        POIFSFileSystem fsFileSystem = new POIFSFileSystem(fileInputStream);
        HSSFWorkbook workBook = new HSSFWorkbook(fsFileSystem);
        HSSFSheet hssfSheet = workBook.getSheetAt(0);
        Iterator rowIterator = hssfSheet.rowIterator();

        while (rowIterator.hasNext()) {
            HSSFRow hssfRow = (HSSFRow) rowIterator.next();
            Iterator iterator = hssfRow.cellIterator();
            List cellTempList = new ArrayList();
            while (iterator.hasNext()) {
                HSSFCell hssfCell = (HSSFCell) iterator.next();
                cellTempList.add(hssfCell);
            }
            cellDataList.add(cellTempList);
        }
    } catch (Exception e) {
        WmLog.printMessage("Can not read XLs file=" + this.fileName);
        e.printStackTrace();
    }

    //printToConsole(cellDataList);

    return cellDataList;
}

From source file:com.testmax.util.ExcelSheet.java

License:CDDL license

/**
* This method is used to read the data's from an excel file.
* @param sheetIndex - Index of sheet 0,1,2 etc.
* 
*//*from w w  w .j a  va2  s. com*/
private List<ArrayList> readExcel(int sheetIndex) {
    String cellContents = "";
    ArrayList<ArrayList> excel = new ArrayList<ArrayList>();
    ArrayList<String> rowVal = new ArrayList<String>();
    try {
        FileInputStream fileInputStream = new FileInputStream(this.fileName);
        POIFSFileSystem fsFileSystem = new POIFSFileSystem(fileInputStream);
        HSSFWorkbook workBook = new HSSFWorkbook(fsFileSystem);
        HSSFSheet sheet = workBook.getSheetAt(sheetIndex);
        Iterator<Row> rowIt = sheet.rowIterator();
        while (rowIt.hasNext()) {
            Row row = rowIt.next();
            Iterator<Cell> colIt = row.cellIterator();
            while (colIt.hasNext()) {
                Cell cell = colIt.next();
                cellContents = cell.getStringCellValue();
                rowVal.add(cellContents);
            }
            excel.add(rowVal);
        }

    } catch (IOException e) {
        WmLog.printMessage("ERROR in reading Excel Sheet Index=" + sheetIndex + " Excel File=" + this.fileName
                + " " + e.getMessage());
        // TODO Auto-generated catch block
        e.printStackTrace();
        return null;
    }

    return (excel);

}

From source file:Control.CtrlCredencial.java

/**
 * This method is used to read the data's from an excel file.
 *
 * @param fileName - Name of the excel file.
 *///from www  .j  av a2  s . c  o  m
public ArrayList readExcelFile(String fileName) {

    /**
     * Create a new instance for cellDataList
     */
    List cellDataList = new ArrayList();
    try {
        /**
         * Create a new instance for FileInputStream class
         */
        FileInputStream fileInputStream = new FileInputStream(fileName);
        /**
         * Create a new instance for POIFSFileSystem class
         */

        //POIFSFileSystem fsFileSystem = new POIFSFileSystem(fileInputStream);
        /*
                
         * Create a new instance for HSSFWorkBook Class
         */
        HSSFWorkbook workbook = new HSSFWorkbook(fileInputStream);
        HSSFSheet hssfSheet = workbook.getSheet("Pregrado - 2013-02");

        /**
         * Iterate the rows and cells of the spreadsheet to get all the
         * datas.
         */
        Iterator rowIterator = hssfSheet.rowIterator();
        while (rowIterator.hasNext()) {

            HSSFRow hssfRow = (HSSFRow) rowIterator.next();
            Iterator iterator = hssfRow.cellIterator();
            List cellTempList = new ArrayList();
            while (iterator.hasNext()) {

                HSSFCell hssfCell = (HSSFCell) iterator.next();
                cellTempList.add(hssfCell);
                //                   
            }
            cellDataList.add(cellTempList);

        }
    } catch (Exception e) {
        e.printStackTrace();
    }
    /**
     * Call the printToConsole method to print the cell data in the console.
     */
    return credencialesToArray(cellDataList);

}

From source file:Controller.importarController.java

/**
 * funo para ler um arquivo em Excel//from   w  w  w .  j  a  v  a2 s  .  c  om
 *
 * @param fileName
 * @param myInput
 * @return
 */
@SuppressWarnings("unchecked")
public List ReadFile(String fileName, FileInputStream myInput) {
    List cellVectorHolder = new ArrayList();
    try {
        //FileInputStream myInput = new FileInputStream(fileName);
        POIFSFileSystem myFileSystem = new POIFSFileSystem(myInput);
        HSSFWorkbook myWorkBook = new HSSFWorkbook(myFileSystem);
        HSSFSheet mySheet = myWorkBook.getSheetAt(0);
        Iterator rowIter = mySheet.rowIterator();
        while (rowIter.hasNext()) {
            HSSFRow myRow = (HSSFRow) rowIter.next();
            Iterator cellIter = myRow.cellIterator();
            List cellStoreVector = new ArrayList();
            while (cellIter.hasNext()) {
                HSSFCell myCell = (HSSFCell) cellIter.next();
                cellStoreVector.add(myCell);
            }
            cellVectorHolder.add(cellStoreVector);
        }
    } catch (Exception e) {
    }
    return cellVectorHolder;
}

From source file:database_lab1.ExcelToMySQL.java

public void ExcelFileReader(String filename) throws IOException, SQLException {
    FileInputStream fis = null;/*from w  w w .  j a  v a2s. c o m*/
    Scanner sc = new Scanner(System.in);
    try {
        fis = new FileInputStream(filename);
        String queryValue = (new File(filename).getName().replaceAll("(.xls)", ""));
        System.out.print("Please input the schema name:");
        String schemaName = sc.next();
        System.out.print("Please input the database username:");
        String userName = sc.next();
        System.out.print("Please input the database password:");
        String password = sc.next();
        HSSFWorkbook workbook = new HSSFWorkbook(fis);
        HSSFSheet sheet = workbook.getSheetAt(0);
        Iterator rowIter = sheet.rowIterator();
        //variable that will use to find the first row
        int firstrow = 0, maxColumn = 0;
        //iterator for the row values 
        while (rowIter.hasNext()) {
            HSSFRow myRow = (HSSFRow) rowIter.next();
            Iterator cellIter = myRow.cellIterator();
            Vector<String> cellStoreVector = new Vector<String>();
            while (cellIter.hasNext()) {
                HSSFCell myCell = (HSSFCell) cellIter.next();
                String cellvalue;

                //determines if cell value is string or numaric
                if (myCell.getCellType() == 1)
                    cellvalue = myCell.getStringCellValue();
                else
                    cellvalue = (int) myCell.getNumericCellValue() + "";
                //adds the value in the vector
                cellStoreVector.addElement(cellvalue);
                //prints out the cell valuse
                System.out.print(cellvalue + "  ");

            }
            System.out.println();
            //if the row is not the first row then,
            //insert the data in database
            if (firstrow != 0) {
                dbConnection db = new dbConnection("jdbc:mysql://localhost:3306/" + schemaName, userName,
                        password);
                //sql comment
                String insert = "INSERT INTO " + queryValue + " VALUES (?,?,?,?,?,?);";
                PreparedStatement ps = db.getConnection().prepareStatement(insert);//createStatement().executeUpdate(insert);
                for (int i = 1; i <= cellStoreVector.size(); i++) {
                    ps.setString(i, cellStoreVector.get(i - 1));
                }
                //executing the sql command
                ps.execute();
            }
            firstrow++;
        }
    } catch (IOException e) {
        e.printStackTrace();
    } finally {
        if (fis != null) {
            fis.close();
        }
    }
}

From source file:database_lab1.studentExcel.java

public void studentExcelFile(String filename) throws IOException, SQLException {
    FileInputStream fis = null;/*from   w  ww .j av a2s.  co m*/
    try {
        fis = new FileInputStream(filename);
        HSSFWorkbook workbook = new HSSFWorkbook(fis);
        HSSFSheet sheet = workbook.getSheetAt(0);
        Iterator rowIter = sheet.rowIterator();
        int firstrow = 0;
        while (rowIter.hasNext()) {
            HSSFRow myRow = (HSSFRow) rowIter.next();
            Iterator cellIter = myRow.cellIterator();
            Vector<String> cellStoreVector = new Vector<String>();
            while (cellIter.hasNext()) {
                HSSFCell myCell = (HSSFCell) cellIter.next();
                String cellvalue;
                if (myCell.getCellType() == 1)
                    cellvalue = myCell.getStringCellValue();
                else
                    cellvalue = (int) myCell.getNumericCellValue() + "";
                cellStoreVector.addElement(cellvalue);
                System.out.print(cellvalue + "  ");

            }
            System.out.println();
            if (firstrow != 0) {
                dbConnection db = new dbConnection("jdbc:mysql://localhost:3306/database_lab1", "root",
                        "password");
                String insert = "INSERT INTO student  VALUES (?,?,?,?,?,?);";
                PreparedStatement ps = db.getConnection().prepareStatement(insert);//createStatement().executeUpdate(insert);
                ps.setString(1, cellStoreVector.get(0));
                ps.setString(2, cellStoreVector.get(1));
                ps.setString(3, cellStoreVector.get(2));
                ps.setString(4, cellStoreVector.get(3));
                ps.setString(5, cellStoreVector.get(4));
                ps.setString(6, cellStoreVector.get(5));
                Boolean rs = ps.execute();
            }
            firstrow++;

        }
    } catch (IOException e) {

        e.printStackTrace();

    } finally {
        if (fis != null) {
            fis.close();
        }
    }
}

From source file:de.bund.bfr.knime.openkrise.db.imports.GeneralXLSImporter.java

License:Open Source License

public boolean doImport(final String filename, final JProgressBar progress, final boolean showResults) {
    Runnable runnable = new Runnable() {
        public void run() {
            try {
                if (progress != null) {
                    progress.setVisible(true);
                    progress.setStringPainted(true);
                    progress.setString("Importiere Excel Datei...");
                    progress.setMinimum(0);
                }//from www . j  av  a2 s.c o m

                InputStream is = null;
                System.out.println(filename);
                if (filename.startsWith("http://")) {
                    URL url = new URL(filename);
                    URLConnection uc = url.openConnection();
                    is = uc.getInputStream();
                } else if (filename.startsWith("/de/bund/bfr/knime/openkrise/db/res/")) {
                    is = this.getClass().getResourceAsStream(filename);
                } else {
                    is = new FileInputStream(filename);
                }

                try (HSSFWorkbook wb = new HSSFWorkbook(new POIFSFileSystem(is))) {
                    HSSFSheet sheet;
                    HSSFRow row;

                    int numSuccess = 0;
                    int numFailed = 0;
                    String unusedFields = "";
                    for (int i = 0; i < wb.getNumberOfSheets(); i++) {
                        sheet = wb.getSheetAt(i);
                        String tableName = sheet.getSheetName();
                        MyTable myT = DBKernel.myDBi.getTable(tableName);
                        if (myT != null) {
                            int numRows = sheet.getLastRowNum();
                            if (progress != null) {
                                progress.setMaximum(numRows);
                                progress.setValue(0);
                            }

                            row = sheet.getRow(0);
                            String sql1 = "";
                            String sql2 = "";
                            String sql3 = "";
                            Vector<String> codeSql1 = new Vector<>();
                            Vector<String> codeSql2 = new Vector<>();
                            LinkedHashMap<MyTable, Vector<Integer>> foreignTables = new LinkedHashMap<>();
                            int numCols = row.getLastCellNum();
                            String[] fieldNames = new String[numCols];
                            String[] fieldTypes = new String[numCols];//getTypes(fieldNames, myT);
                            String[] ffieldTypes = new String[numCols];
                            MyTable[] myForeignTables = new MyTable[numCols];
                            String[] kzS = new String[numCols];
                            String[] dbFieldnames = new String[numCols];
                            int lfdCol = 0;
                            Hashtable<String, String> dbFieldNames = new Hashtable<>();
                            for (int j = 0; j < numCols; j++) {
                                String fieldName = row.getCell(j).getStringCellValue();
                                fieldNames[j] = fieldName;
                                int ffe;
                                String dbFieldName = getDBFieldName(fieldName, myT, takecareofID);
                                if (dbFieldName != null) {
                                    String ft = getForeignTable(dbFieldName, myT);
                                    if (ft != null && ft.equals("DoubleKennzahlen")) {
                                        kzS[j] = getKZ(fieldName, dbFieldName);
                                        dbFieldnames[j] = dbFieldName;
                                    } else if (!dbFieldNames.containsKey(dbFieldName)) {
                                        dbFieldNames.put(dbFieldName, dbFieldName);
                                        sql1 += DBKernel.delimitL(dbFieldName) + ",";
                                        sql2 += "?,";
                                        sql3 += DBKernel.delimitL(dbFieldName) + "=?,";
                                        lfdCol++;
                                    }
                                    fieldTypes[j] = getType(dbFieldName, myT, takecareofID);
                                } else if ((ffe = foreignFieldExists(fieldName, myT)) >= 0) {
                                    if (!foreignTables.containsKey(myT.getForeignFields()[ffe]))
                                        foreignTables.put(myT.getForeignFields()[ffe], new Vector<Integer>());
                                    ffieldTypes[j] = getType(fieldName, myT.getForeignFields()[ffe], false);
                                    foreignTables.get(myT.getForeignFields()[ffe]).add(j);
                                    myForeignTables[j] = myT.getForeignFields()[ffe];
                                } else if (DBKernel.showHierarchic(tableName)
                                        && fieldName.toLowerCase().endsWith("-code")) {
                                    codeSql1.add(DBKernel.delimitL("CodeSystem") + ","
                                            + DBKernel.delimitL("Code") + "," + DBKernel.delimitL("Basis"));
                                    codeSql2.add(
                                            "'" + fieldName.substring(0, fieldName.length() - "-code".length())
                                                    + "',?,?");
                                } else if (!fieldName.equalsIgnoreCase("id")) {
                                    unusedFields += "," + fieldName;
                                }
                            }
                            if (sql1.length() > 0 && sql2.length() > 0) {
                                String sql = "INSERT INTO " + DBKernel.delimitL(tableName) + " ("
                                        + sql1.substring(0, sql1.length() - 1) + ") VALUES ("
                                        + sql2.substring(0, sql2.length() - 1) + ")";
                                PreparedStatement ps = DBKernel.getDBConnection().prepareStatement(sql,
                                        Statement.RETURN_GENERATED_KEYS);
                                int idCol = lfdCol + 1;
                                sql = "UPDATE " + DBKernel.delimitL(tableName) + " SET "
                                        + sql3.substring(0, sql3.length() - 1) + " WHERE "
                                        + DBKernel.delimitL("ID") + "=?";
                                PreparedStatement psUpdate = DBKernel.getDBConnection().prepareStatement(sql);
                                PreparedStatement[] psCodes = new PreparedStatement[codeSql1.size()];
                                boolean doCode[] = new boolean[codeSql1.size()];
                                int codesI;
                                for (codesI = 0; codesI < codeSql1.size(); codesI++) {
                                    sql = "INSERT INTO " + DBKernel.delimitL(DBKernel.getCodesName(tableName))
                                            + " (" + codeSql1.get(codesI) + ") VALUES (" + codeSql2.get(codesI)
                                            + ")";
                                    psCodes[codesI] = DBKernel.getDBConnection().prepareStatement(sql);
                                }
                                LinkedHashMap<MyTable, PreparedStatement> psForeign = new LinkedHashMap<>();
                                LinkedHashMap<MyTable, PreparedStatement> psForeignUpdate = new LinkedHashMap<>();
                                for (Map.Entry<MyTable, Vector<Integer>> entry : foreignTables.entrySet()) {
                                    Vector<Integer> vs = entry.getValue();
                                    String ssql1 = "", ssql2 = "", ssql3 = "";
                                    for (int ii = 0; ii < vs.size(); ii++) {
                                        ssql1 += "," + DBKernel.delimitL(fieldNames[vs.get(ii)]);
                                        ssql2 += ",?";
                                        ssql3 += "," + DBKernel.delimitL(fieldNames[vs.get(ii)]) + "=?";
                                    }
                                    if (ssql1.length() > 0 && ssql2.length() > 0 && ssql3.length() > 0) {
                                        sql = "INSERT INTO " + DBKernel.delimitL(entry.getKey().getTablename())
                                                + " (" + ssql1.substring(1) + ") VALUES (" + ssql2.substring(1)
                                                + ")";
                                        psForeign.put(entry.getKey(), DBKernel.getDBConnection()
                                                .prepareStatement(sql, Statement.RETURN_GENERATED_KEYS));
                                        sql = "UPDATE " + DBKernel.delimitL(entry.getKey().getTablename())
                                                + " SET " + ssql3.substring(1) + " WHERE "
                                                + DBKernel.delimitL("ID") + "=?";
                                        psForeignUpdate.put(entry.getKey(),
                                                DBKernel.getDBConnection().prepareStatement(sql));
                                    }
                                }

                                LinkedHashMap<Object, String> hashBL = null;
                                Iterator<Row> rows = sheet.rowIterator();
                                int lfd = 0;
                                while (rows.hasNext()) {
                                    row = (HSSFRow) rows.next();
                                    boolean setID = false;
                                    Integer lastID = null;
                                    ps.clearParameters();
                                    psUpdate.clearParameters();
                                    for (codesI = 0; codesI < codeSql1.size(); codesI++) {
                                        psCodes[codesI].clearParameters();
                                        doCode[codesI] = false;
                                    }
                                    LinkedHashMap<MyTable, Integer> lfdColsForeign = new LinkedHashMap<>();
                                    for (Map.Entry<MyTable, PreparedStatement> entry : psForeignUpdate
                                            .entrySet()) {
                                        MyTable myT1 = entry.getKey();
                                        psForeign.get(myT1).clearParameters();
                                        psForeignUpdate.get(myT1).clearParameters();
                                        lfdColsForeign.put(myT1, 0);
                                    }

                                    if (row.getRowNum() > 0) {
                                        lfdCol = 0;
                                        codesI = 0;
                                        Object[] kzVal = new Object[numCols];
                                        for (int j = 0; j < numCols; j++) {
                                            if (fieldTypes[j] != null) {
                                                /*
                                                 * if (fieldNames[j].equals(
                                                 * "Bundesland")) { hashBL =
                                                 * DBKernel
                                                 * .myDBi.getHashMap("County");
                                                 * } else { hashBL = null; }
                                                 */
                                                lfdCol++;
                                                if (fieldTypes[j].startsWith("VARCHAR(")
                                                        || fieldTypes[j].startsWith("CHAR(")
                                                        || fieldTypes[j].startsWith("BLOB(")
                                                                && !tableName.equals("DateiSpeicher"))
                                                    manageString(ps, psUpdate, lfdCol, row.getCell(j), hashBL);
                                                else if (fieldTypes[j].equals("BOOLEAN"))
                                                    manageBoolean(ps, psUpdate, lfdCol, row.getCell(j));
                                                else if (fieldTypes[j].equals("INTEGER"))
                                                    manageInteger(ps, psUpdate, lfdCol, row.getCell(j));
                                                else if (fieldTypes[j].equals("BIGINT"))
                                                    manageBigInteger(ps, psUpdate, lfdCol, row.getCell(j));
                                                else if (fieldTypes[j].equals("DATE"))
                                                    manageDate(ps, psUpdate, lfdCol, row.getCell(j));
                                                else if (fieldTypes[j].equals("DOUBLE")) {
                                                    if (kzS[j] != null) {
                                                        lfdCol--;
                                                        //System.err.println(dbFieldnames[j] + "\t" + kzS[j]);
                                                        if (DBKernel.kzIsString(kzS[j]))
                                                            kzVal[j] = manageString(null, null, lfdCol,
                                                                    row.getCell(j));
                                                        else if (DBKernel.kzIsBoolean(kzS[j]))
                                                            kzVal[j] = manageBoolean(null, null, lfdCol,
                                                                    row.getCell(j));
                                                        else
                                                            kzVal[j] = manageDouble(null, null, lfdCol,
                                                                    row.getCell(j));
                                                    } else {
                                                        manageDouble(ps, psUpdate, lfdCol, row.getCell(j));
                                                    }
                                                } else
                                                    System.err.println(
                                                            "Wasn hier los? Undefinierter Feldtyp???? ->\t"
                                                                    + fieldNames[j]);
                                            } else if (myForeignTables[j] != null && ffieldTypes[j] != null) {
                                                lfdColsForeign.put(myForeignTables[j],
                                                        lfdColsForeign.get(myForeignTables[j]) + 1);
                                                if (ffieldTypes[j].startsWith("VARCHAR(")
                                                        || ffieldTypes[j].startsWith("CHAR(")
                                                        || ffieldTypes[j].startsWith("BLOB(")
                                                                && !tableName.equals("DateiSpeicher"))
                                                    manageString(psForeign.get(myForeignTables[j]),
                                                            psForeignUpdate.get(myForeignTables[j]),
                                                            lfdColsForeign.get(myForeignTables[j]),
                                                            row.getCell(j), hashBL);
                                                else if (ffieldTypes[j].equals("BOOLEAN"))
                                                    manageBoolean(psForeign.get(myForeignTables[j]),
                                                            psForeignUpdate.get(myForeignTables[j]),
                                                            lfdColsForeign.get(myForeignTables[j]),
                                                            row.getCell(j));
                                                else if (ffieldTypes[j].equals("INTEGER"))
                                                    manageInteger(psForeign.get(myForeignTables[j]),
                                                            psForeignUpdate.get(myForeignTables[j]),
                                                            lfdColsForeign.get(myForeignTables[j]),
                                                            row.getCell(j));
                                                else if (ffieldTypes[j].equals("BIGINT"))
                                                    manageBigInteger(psForeign.get(myForeignTables[j]),
                                                            psForeignUpdate.get(myForeignTables[j]),
                                                            lfdColsForeign.get(myForeignTables[j]),
                                                            row.getCell(j));
                                                else if (fieldTypes[j].equals("DATE"))
                                                    manageDate(psForeign.get(myForeignTables[j]),
                                                            psForeignUpdate.get(myForeignTables[j]),
                                                            lfdColsForeign.get(myForeignTables[j]),
                                                            row.getCell(j));
                                                else if (ffieldTypes[j].equals("DOUBLE")) {
                                                    manageDouble(psForeign.get(myForeignTables[j]),
                                                            psForeignUpdate.get(myForeignTables[j]),
                                                            lfdColsForeign.get(myForeignTables[j]),
                                                            row.getCell(j));
                                                } else
                                                    System.err.println(fieldNames[j] + " Feldtype????");
                                            } else if (fieldNames[j].equals("ID")) {
                                                lastID = manageInteger(null, null, 0, row.getCell(j));
                                                if (lastID != null) {
                                                    if (DBKernel.hasID(tableName, lastID.intValue())) {
                                                        psUpdate.setInt(idCol, lastID.intValue());
                                                        setID = true;
                                                    }
                                                }
                                            } else if (DBKernel.showHierarchic(tableName)
                                                    && fieldNames[j].toLowerCase().endsWith("-code")) {
                                                String code = manageString(psCodes[codesI], null, 1,
                                                        row.getCell(j));
                                                if (code != null && code.length() > 0)
                                                    doCode[codesI] = true;
                                                codesI++;
                                            } else {
                                                //System.out.println(fieldNames[j]);                                 
                                            }
                                        }
                                        try {
                                            if (setID) {
                                                psUpdate.execute();
                                            } else {
                                                if (ps.executeUpdate() > 0) {// execute()
                                                    lastID = DBKernel.getLastInsertedID(ps);
                                                } else {
                                                    System.err.println("W");
                                                }
                                            }
                                            numSuccess++;
                                            if (lastID != null) {
                                                for (int j = 0; j < numCols; j++) {
                                                    if (dbFieldnames[j] != null && kzVal[j] != null) {
                                                        DBKernel.insertDBL(myT.getTablename(), dbFieldnames[j],
                                                                lastID, null, kzS[j], kzVal[j]);
                                                    }
                                                }
                                                for (codesI = 0; codesI < codeSql1.size(); codesI++) {
                                                    if (doCode[codesI]) {
                                                        psCodes[codesI].setInt(2, lastID);
                                                        try {
                                                            psCodes[codesI].execute();
                                                            numSuccess++;
                                                        } catch (SQLException e1) {
                                                            numFailed++;
                                                            System.err.println(psCodes[codesI]);
                                                        }
                                                    }
                                                }

                                                for (Map.Entry<MyTable, PreparedStatement> entry : psForeign
                                                        .entrySet()) {
                                                    MyTable myT1 = entry.getKey();
                                                    MyTable[] foreignTs = myT.getForeignFields();
                                                    for (int ii = 0; ii < foreignTs.length; ii++) {
                                                        if (foreignTs[ii] != null
                                                                && foreignTs[ii].equals(myT1)) {
                                                            if (psForeign.get(myT1).executeUpdate() > 0) { // INSERT
                                                                int lID = DBKernel
                                                                        .getLastInsertedID(psForeign.get(myT1));
                                                                // Das erstbeste Feld, das auf den Fremdtable verweist, wird mit dem Neueintrag verlinkt
                                                                DBKernel.sendRequest("UPDATE "
                                                                        + DBKernel.delimitL(tableName) + " SET "
                                                                        + DBKernel.delimitL(
                                                                                myT.getFieldNames()[ii])
                                                                        + "=" + lID + " WHERE "
                                                                        + DBKernel.delimitL("ID") + "="
                                                                        + lastID, false);
                                                            }
                                                            break;
                                                        }
                                                    }
                                                }
                                                /*
                                                 * for (int j=0;j<numCols;j++) {
                                                 * if (myForeignTables[j] !=
                                                 * null && ffieldTypes[j] !=
                                                 * null) { MyTable[] foreignTs =
                                                 * myT.getForeignFields(); for
                                                 * (int
                                                 * ii=0;ii<foreignTs.length;
                                                 * ii++) { if (foreignTs[ii] !=
                                                 * null && foreignTs[ii].equals(
                                                 * myForeignTables[j])) { if
                                                 * (psForeign
                                                 * .get(myForeignTables
                                                 * [j]).executeUpdate() > 0) {
                                                 * // INSERT int lID =
                                                 * DBKernel.getLastInsertedID
                                                 * (psForeign
                                                 * .get(myForeignTables[j]));
                                                 * DBKernel
                                                 * .sendRequest("UPDATE " +
                                                 * DBKernel.delimitL(tableName)
                                                 * + " SET " +
                                                 * DBKernel.delimitL(
                                                 * myT.getFieldNames()[ii]) +
                                                 * "=" + lID + " WHERE " +
                                                 * DBKernel.delimitL("ID") + "="
                                                 * + lastID, false); } break; }
                                                 * } } }
                                                 */
                                            }
                                        } catch (Exception e1) {
                                            numFailed++;
                                            MyLogger.handleMessage(ps.toString());
                                            MyLogger.handleException(e1);
                                        }
                                    }
                                    if (progress != null) {
                                        lfd++;
                                        progress.setValue(lfd);
                                    }
                                }
                            }

                            myT.doMNs();
                            if (progress != null) {
                                // Refreshen:
                                MyDBTable myDB = DBKernel.mainFrame.getMyList().getMyDBTable();
                                if (myDB.getActualTable() != null) {
                                    String actTablename = myDB.getActualTable().getTablename();
                                    if (actTablename.equals(tableName)
                                            || actTablename.equals(DBKernel.getCodesName(tableName))) {
                                        myDB.setTable(myDB.getActualTable());
                                    }
                                }
                                MyDBTree myTR = DBKernel.mainFrame.getMyList().getMyDBTree();
                                if (myTR.getActualTable() != null) {
                                    String actTablename = myTR.getActualTable().getTablename();
                                    if (actTablename.equals(tableName)
                                            || actTablename.equals(DBKernel.getCodesName(tableName))) {
                                        myTR.setTable(myTR.getActualTable());
                                    }
                                }
                            }
                        } else {
                            System.err.println(tableName + " nicht in DB???");
                        }
                    }
                    if (progress != null) {
                        progress.setVisible(false);
                    }
                    String log = numSuccess + " erfolgreiche Importe.\n";
                    log += numFailed + " fehlgeschlagene Importe.\n";
                    if (unusedFields.length() > 0)
                        log += "Unbekannte Felder: " + unusedFields.substring(1) + "\n";
                    if (showResults) {
                        InfoBox ib = new InfoBox(log, true, new Dimension(400, 300), null);
                        ib.setVisible(true);
                    } else {
                        System.out.println("GeneralXLSImporter (" + filename + "):\n" + log);
                    }
                } catch (Exception e) {
                    MyLogger.handleException(e);
                }
            } catch (Exception e) {
                MyLogger.handleException(e);
            }
        }
    };

    Thread thread = new Thread(runnable);
    thread.start();
    try {
        thread.join();
    } catch (InterruptedException e) {
        MyLogger.handleException(e);
    }
    return true;
}