Функция при вызове poi java - PullRequest
1 голос
/ 05 марта 2019

Привет, у меня проблема. У меня есть файл Excel. Я восстановил данные из этого файла, затем я создал функцию для проверки наличия патча на другом листе или не все работает хорошо до ... тогда я хочуотображать перед каждым патчем «Да», если патч существует, иначе «нет», но проблема в том, что при создании выходного файла он отображает все патчи «нет», даже если патчи существуют

это код:

//Create Other rows and cells with data
for (int i = 0; i < patches.size(); i++) {
    if (patches.get(i).getOrigin_Environment().endsWith("MT22")) {
        Row roww = sheet_outputMT22.createRow(i+1);
        roww.createCell(0).setCellValue(patches.get(i).getVaFxNumber());
        roww.createCell(1).setCellValue(patches.get(i).getVaVersion());
        roww.createCell(2).setCellValue(patches.get(i).getVaPackage());
        roww.createCell(3).setCellValue(patches.get(i).getVaLevmat());
        roww.createCell(4).setCellValue(patches.get(i).getOrigin_Environment());
        roww.createCell(5).setCellValue(patches.get(i).getVaSrcCode());
        roww.createCell(6).setCellValue(patches.get(i).getInstalled());
    } else if (patches.get(i).getOrigin_Environment().endsWith("DV46")) {
        Row rowww = sheet_outputDV46.createRow(i+1);
        rowww.createCell(0).setCellValue(patches.get(i).getVaFxNumber());
        rowww.createCell(1).setCellValue(patches.get(i).getVaVersion());
        rowww.createCell(2).setCellValue(patches.get(i).getVaPackage());
        rowww.createCell(3).setCellValue(patches.get(i).getVaLevmat());
        rowww.createCell(4).setCellValue(patches.get(i).getOrigin_Environment());
        rowww.createCell(6).setCellValue(patches.get(i).getVaSrcCode());
    }
}

try {
    FileOutputStream fileOut = new FileOutputStream("heroes_output.xls");
    workbook_output.write(fileOut);
    fileOut.close();
    workbook_output.close();
    LOGGER.log(Level.INFO, "Output excel file generated successfuly");

} catch (Exception e) {
    // TODO: handle exception
    LOGGER.log(Level.SEVERE, e.getMessage());
}
}

public static void initializeOutputFile() {
    // Create outputWorkbook
    sheet_outputMT22 = workbook_output.createSheet("MT22");
    sheet_outputDV46 = workbook_output.createSheet("DV46");
    // create row
    Row headerRow = sheet_outputMT22.createRow(0);
    Row headerRoww = sheet_outputDV46.createRow(0);
    // Creating cells
    for (int i = 0; i < columns.length; i++) {
        Cell cell = headerRow.createCell(i);
        Cell cellDv46 = headerRoww.createCell(i);
        cellDv46.setCellValue(columns[i]);
        cell.setCellValue(columns[i]);
    }

    // Resize all columns to fit the content size
    for (int i = 0; i < columns.length; i++) {
        sheet_outputMT22.autoSizeColumn(i);
        sheet_outputDV46.autoSizeColumn(i);

    }
}
// Create RF80 List
public static List<String> createRF80List(Sheet envARF80_sheet){

    for (int rowNumberr = 2; rowNumberr <= envARF80_sheet.getLastRowNum(); rowNumberr++) {
        HSSFRow row1 = (HSSFRow) envARF80_sheet.getRow(rowNumberr);

        HSSFCell cell_NUMOD = row1.getCell(0);
        Cell cell_NUMODI = row1.getCell(0);
        if (cell_NUMODI == null) {
            cell_NUMODI = new StreamingCell(4, row1.getRowNum());
        }

        double number1 = cell_NUMODI.getNumericCellValue();
        String RF80CELL = new Double(number1).toString();
        listRF80.add(RF80CELL) ; 
    }

    return listRF80 ; 
}


//Create Patches List 
public static List<Patch> createPatches(Sheet validation_sheet) {
    String ins;
    for (int rowNumber = 2; rowNumber <= validation_sheet.getLastRowNum(); rowNumber++) {
        HSSFRow row = (HSSFRow) validation_sheet.getRow(rowNumber);

        HSSFCell cell = row.getCell(3);
        HSSFCell cell2 = row.getCell(4);
        HSSFCell cell3 = row.getCell(12);

        if (cell != null && cell2 != null) {
            // do something with the cell

            if (cell.getStringCellValue().endsWith("Y") && cell2.getStringCellValue().endsWith("MT22")  ) {

                HSSFCell cell_vafxnumber = row.getCell(0);
                HSSFCell cell_VaVersion = row.getCell(1);
                HSSFCell cell_VaPackage = row.getCell(2);
                HSSFCell cell_VaLevmat = row.getCell(3);

                Cell cell_VaSrcCode = row.getCell(12);
                if (cell_VaSrcCode == null) {
                    cell_VaSrcCode = new StreamingCell(12, row.getRowNum());

                }

                Cell cell_Origin_Environment = row.getCell(4);
                if (cell_Origin_Environment == null) {
                    cell_Origin_Environment = new StreamingCell(4, row.getRowNum());
                }

                double number = cell_vafxnumber.getNumericCellValue();
                String number_string = new Double(number).toString();
                String VaVersion = cell_VaVersion.getStringCellValue();
                String VaPackage = cell_VaPackage.getStringCellValue();
                String VaLevmat = cell_VaLevmat.getStringCellValue();
                String Origin_Environment = cell_Origin_Environment.getStringCellValue();
                String VaSrcCode = cell_VaSrcCode.getStringCellValue();
                String installed = verifExistingPatch(listRF80);


                Patch patchh = new Patch(number_string, VaPackage, VaVersion, VaLevmat, Origin_Environment, VaSrcCode , installed);
                patches.add(patchh);
            }
        }

    }
    return patches;
}


public static String verifExistingPatch(List<String> listRF80 ) {

    String exist = ""  ; 

    for(int i = 0 ; i<patches.size() ; i++) {
        for(int j =0 ; j<listRF80.size() ; j++)
            if(patches.get(i).getVaFxNumber().contains(listRF80.get(j)))  {
                exist = "Yes" ;
                System.out.println(patches.get(i).getVaFxNumber() + " Le patche est installes " + exist) ;
            }else if (!patches.get(i).getVaFxNumber().contains(listRF80.get(j))) {
                exist="No";
            }
    }
    return exist;
}
...