I am new to Apache POI.
I have written a small code for removing duplicate records from a excel file. I am successfully able to identify the duplicate records across sheets but when writing to a new file after removing records, no output is being generated.
Please help where I am goin wrong?
Am I writing properly ?? Or am missing something?
public static void main(String args[]) {
    DataFormatter formatter = new DataFormatter();
    HSSFWorkbook input_workbook;
    HSSFWorkbook workbook_Output_Final;
    HSSFSheet input_workbook_sheet;
    HSSFRow row_Output;
    HSSFRow row_1_index;
    HSSFRow row_2_index;
    String value1 = "";
    String value2 = "";
    int count;
    //main try catch block starts
    try {
        FileInputStream input_file = new FileInputStream("E:\\TEST\\Output.xls"); //reading from input file
        input_workbook = new HSSFWorkbook(new POIFSFileSystem(input_file));
        for (int sheetnum = 0; sheetnum < input_workbook.getNumberOfSheets(); sheetnum++) { //traversing  sheets
            input_workbook_sheet = input_workbook.getSheetAt(sheetnum);
            int input_workbook_sheet_total_row = input_workbook_sheet.getLastRowNum(); //fetching last row nmber
            for (int input_workbook_sheet_row_1 = 0; input_workbook_sheet_row_1 <= input_workbook_sheet_total_row; input_workbook_sheet_row_1++) { //traversing row 1
                for (int input_workbook_sheet_row_2 = 0; input_workbook_sheet_row_2 <= input_workbook_sheet_total_row; input_workbook_sheet_row_2++) {
                    row_1_index = input_workbook_sheet.getRow(input_workbook_sheet_row_1);    //fetching one iteration row index
                    row_2_index = input_workbook_sheet.getRow(input_workbook_sheet_row_2);    //fetching sec iteration row index
                    if (row_1_index != row_2_index) {
                        count = 0;
                        value1 = "";
                        value2 = "";
                        for (int row_1_index_cell = 0; row_1_index_cell < row_1_index.getLastCellNum(); row_1_index_cell++)  { //traversing cell for each row
                            try {
                                value1 = value1 + formatter.formatCellValue(row_1_index.getCell(row_1_index_cell)); //fetching  row cells value
                                value2 = value2 + formatter.formatCellValue(row_2_index.getCell(row_1_index_cell)); //fetching row cells value 
                            } catch (NullPointerException e) {
                            }
                            count++;
                            if (count == row_1_index.getLastCellNum()) {
                                if (value1.hashCode() == value2.hashCode()) { //remove the duplicate logic  
                                    System.out.println("deleted : " + row_2_index);
                                    System.out.println("------------------");
                                    input_workbook_sheet.removeRow(row_2_index);
                                }
                            }
                        }
                    }
                }
            }
        }
        FileOutputStream fileOut = new FileOutputStream("E:\\TEST\\workbook.xls");
        input_workbook.write(fileOut);
        fileOut.close();
        input_file.close();
    } catch (Exception e) {
        //e.printStackTrace();
    }
    //main try catch block ends
}
 
    