0

私の問題は、文字列 JUNI を含むすべての行を削除したいということです。私が使用しているコードは次のとおりです。

  private void processExcelFile(File f_path) throws Exception{
    File path=f_path;

    try{

        FileInputStream is=new FileInputStream(path);

        HSSFWorkbook wb = new HSSFWorkbook(is);
        HSSFSheet sheet = wb.getSheetAt(0);

        int rowcount_post=0;
        int rowcount_304=0;

        for(Row row: sheet){
                    for(Cell cell : row){

                        if (cell.getCellType() == Cell.CELL_TYPE_STRING){
                                if (cell.getRichStringCellValue().getString().trim().equals("JUNI")){

                                        rowcount_post=row.getRowNum();

                                        HSSFRow removingRow = sheet.getRow(rowcount_post);

                                            if (removingRow != null) {
                                            sheet.removeRow(removingRow);
                                            }



                                     try (FileOutputStream fileOut = new FileOutputStream("C:/juni.xls")) {
                                        wb.write(fileOut);
                                    }

                                }
                                else{
                                    System.out.print("NOT FOUND");

                                }



                        }

                    }
                }

    }
    catch(Exception e){
        JOptionPane.showMessageDialog(this,e.getMessage(),"Error",JOptionPane.ERROR_MESSAGE);
    }
}

この文字列 JUNI を含む Excel ファイルのすべての行を削除する必要があります。この 3 日間から最善を尽くしてきました。どうすればよいでしょうか。よろしくお願いします。

4

1 に答える 1

2

これを試して。これにより、セルのサブストリングとして「JUNI」が含まれているシートのすべての行が削除されます。

    public static void test(XSSFSheet sheet){
       XSSFRow Row = null;
       XSSFCell Cell = null;
       int LastRowNum = sheet.getLastRowNum();
       for(int RowNum= 0;RowNum<LastRowNum-1;RowNum++){
            Row=sheet.getRow(RowNum);
            for(int CellNum = 0; CellNum<Row.getLastCellNum();CellNum++){
               Cell = Row.getCell(CellNum);
               String TextInCell=Cell.toString();
               if(TextInCell.contains("JUNI")){
                  sheet.shiftRows(RowNum+1, LastRowNum, -1);
                  LastRowNum--;
                  RowNum--;
                  break;
               }
            }
        }
    }
于 2013-06-22T05:36:35.243 に答える