0

我的问题是我想删除所有包含 String 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);
    }
}

我只需要删除我的 Excel 文件中包含此字符串 JUNI 的所有行。我该怎么做请帮助我,因为过去 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 回答