Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在javacode中从excel中删除具有特定值的行_Java_Excel_Apache Poi - Fatal编程技术网

在javacode中从excel中删除具有特定值的行

在javacode中从excel中删除具有特定值的行,java,excel,apache-poi,Java,Excel,Apache Poi,我想从excel中删除F列中值为1的所有行,并将其保存在新的excel java代码中。下面是我的java代码。正在创建新的excel,但我无法删除F列中所有值为1的行。我的java代码是: final String filterValue = "1"; FileInputStream excelFile = new FileInputStream("Users.xls"); System.out.println("File read successfully!!");

我想从excel中删除F列中值为1的所有行,并将其保存在新的excel java代码中。下面是我的java代码。正在创建新的excel,但我无法删除F列中所有值为1的行。我的java代码是:

final String filterValue = "1";
FileInputStream excelFile = new FileInputStream("Users.xls");
            System.out.println("File read successfully!!");

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

            HSSFWorkbook wb2 = new HSSFWorkbook();
            wb2 = wb;

            Row row;
            row = sheet.getRow(0);
            int getLastCell=row.getLastCellNum()-1;
            int lastIndex = sheet.getLastRowNum();

            for (int i=0; i<=lastIndex; i++){
                row=sheet.getRow(i);
                if(row.getCell(getLastCell)!=null && (row.getCell(getLastCell).equals(filterValue)))
                          {
                            System.out.println("Removing row "+row);
                           sheet.removeRow(row);
                           //sheet.shiftRows(i, lastIndex, -1);
                        }

                FileOutputStream fileOut = new FileOutputStream("FilteredUserList.xls");
                wb2.write(fileOut);
                fileOut.close();
            }
最终字符串filterValue=“1”;
FileInputStream excelFile=新的FileInputStream(“Users.xls”);
System.out.println(“文件读取成功!!”;
HSSF工作手册wb=新的HSSF工作手册(Excel文件);
HSSFSheet sheet=wb.getSheetAt(0);
HSSFWorkbook wb2=新的HSSFWorkbook();
wb2=wb;
行行;
行=表。getRow(0);
int getLastCell=row.getLastCellNum()-1;
int lastIndex=sheet.getLastRowNum();

对于(int i=0;i
row.getCell(getLastCell).equals(filterValue)
检查
Cell
是否等于
String
。应使用
Cell.getStringCellValue().equals(filterValue)
我将其更改为:Cell Cell Cell=row.getCell(getLastCell);if(Cell!=null&(Cell.getStringCellValue().equals(filterValue)))但是仍然会出现相同的错误您说的是什么错误?与从文本单元格读取数值的错误相同。但是使用DataFormatter它是固定的。但是值为1的行现在在excel中显示为空白。它们不会上移。显示stacktrace和完整代码