Java Excel POI-删除具有空单元格异常的行

鲁兹

我正在用Java和Apache POI库对接口进行编程。我在删除空白行时遇到问题。我的代码是:

public class ExcelDeleteRowsCols {
    final short ROW_START = 0;
    final short COL_START = 0;

    public void deleteRows() {
        try {
            // Open file
            FileInputStream inf = new FileInputStream("in.xls");
            Workbook wb = WorkbookFactory.create(inf);

            // Loop every sheets of workbook
            for (Sheet sheet : wb){

                // Loop every rows of this sheet
                int lastIndex = sheet.getLastRowNum();

                for (int i = ROW_START; i <= lastIndex; i++) {
                    if (sheet.getRow(i) == null || sheet.getRow(i).getCell(COL_START) == null || sheet.getRow(i).getCell(COL_START).toString().equals("")){ 
                        sheet.removeRow(sheet.getRow(i));   //sheet.shiftRows(i, lastIndex, 2);
                    }
                }
            }
            // Save as in another file
            FileOutputStream fileOut = new FileOutputStream("out.xls");
            wb.write(fileOut);
            fileOut.flush();
            fileOut.close();

            System.out.println("Finished!");

        } catch (IOException ioe) {
            System.out.println(ioe);
        } catch (Exception e) {
            System.out.println(e);
        }
    }
}

确切的问题是,在具有空单元格的行中显示异常消息java.lang.NullPointerException。我不明白 Excel范例:

“空单元格”第2行第3行第4行第5行“空单元格”第7行第8行第9行第10行第11行第12行第13行

当没有空单元格时,代码可以正常工作...

请你能帮我吗?

提前致谢。

鲁兹

我有这个xls文件:

在此处输入图片说明

我的目标是删除所有空行,对于这个问题,我认为最好的选择是Java中的OPI。代码是:

public class ExcelDeleteRowsCols {
    final short ROW_START = 0;
    final short COL_START = 0;

    public void deleteRows() {
        try {
            // Open file
            FileInputStream inf = new FileInputStream("in.xls");
            Workbook wb = WorkbookFactory.create(inf);

            // Loop every sheets of workbook
            for (Sheet sheet : wb){

                // Loop every rows of this sheet
                int lastIndex = sheet.getLastRowNum();

                for (int i = ROW_START; i <= lastIndex; i++) {
                    if (sheet.getRow(i) == null || sheet.getRow(i).getCell(COL_START) == null || sheet.getRow(i).getCell(COL_START).toString().equals("")){ 
                        sheet.removeRow(sheet.getRow(i));   
                    }
                }
            }
            // Save as in another file
            FileOutputStream fileOut = new FileOutputStream("out.xls");
            wb.write(fileOut);
            fileOut.flush();
            fileOut.close();

            System.out.println("Finished!");

        } catch (IOException ioe) {
            System.out.println(ioe);
        } catch (Exception e) {
            System.out.println(e);
        }
    }
}

当行为空时,代码可以正常工作,但是问题是当行为null时(sheet.getRow(i)== null)。例如,在此xls的第2行,第12行,第15行和第16行中,您的值为null,然后它不会被删除,因为命令sheet.removeRow(sheet.getRow(i)); NullPointer引发和异常

有什么办法可以删除值为空的行?

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

apache poi Excel小时格式设置单元格值java

来自分类Dev

如何使用POI在Java中的Excel中获取单元格的名称?

来自分类Dev

Java POI导出到具有空行的excel时将被忽略

来自分类Dev

Java POI导出到具有空行的excel时将被忽略

来自分类Dev

从 Apache poi java 读取 Excel

来自分类Dev

Java Apache Poi 编写 Excel

来自分类Dev

通过Java Apache POI在Excel文件中追加新行

来自分类Dev

带有Excel宏的Java Apache Poi SXSSF

来自分类Dev

Java Apache POI空白单元格

来自分类Dev

如果在使用 Java 的 Selenium 中每行和列的特定单元格为空,则无法使用 Apache POI 检入 excel

来自分类常见问题

使用Apache POI在Excel中合并单元格

来自分类Dev

使用Poi在Excel中获取单元格颜色

来自分类Dev

使用Apache POI从Excel读取单元格

来自分类Dev

Excel单元格中具有外部引用的FormulaEvaluator.evaluateAll()使用Apache POI返回RuntimeException

来自分类Dev

如何使用Excel宏对具有空单元格的数据进行排序?

来自分类Dev

在Java中使用POI读取Excel

来自分类Dev

Java POI-从Excel文件读取日期

来自分类Dev

使用Poi阅读Java中的Excel FIE

来自分类Dev

通过列名称java POI读取excel

来自分类Dev

使用Apache POI以Java导出到Excel

来自分类Dev

生成2个Excel文件Java POI

来自分类Dev

使用java poi自动过滤excel

来自分类Dev

用 excel 编写时出错 - Java poi

来自分类Dev

检查空白excel单元格的长度时抛出Java空指针异常

来自分类Dev

如何使用合并单元格值大于单元格宽度的 Apache-POI 增加 Excel 行的高度?

来自分类Dev

将POI中的excel单元格分组,并将第一行作为“ main”

来自分类Dev

将POI中的excel单元格分组,并将第一行作为“ main”

来自分类Dev

如何在Java中使用POI合并单元格

来自分类Dev

如何在Java中使用POI合并单元格

Related 相关文章

  1. 1

    apache poi Excel小时格式设置单元格值java

  2. 2

    如何使用POI在Java中的Excel中获取单元格的名称?

  3. 3

    Java POI导出到具有空行的excel时将被忽略

  4. 4

    Java POI导出到具有空行的excel时将被忽略

  5. 5

    从 Apache poi java 读取 Excel

  6. 6

    Java Apache Poi 编写 Excel

  7. 7

    通过Java Apache POI在Excel文件中追加新行

  8. 8

    带有Excel宏的Java Apache Poi SXSSF

  9. 9

    Java Apache POI空白单元格

  10. 10

    如果在使用 Java 的 Selenium 中每行和列的特定单元格为空,则无法使用 Apache POI 检入 excel

  11. 11

    使用Apache POI在Excel中合并单元格

  12. 12

    使用Poi在Excel中获取单元格颜色

  13. 13

    使用Apache POI从Excel读取单元格

  14. 14

    Excel单元格中具有外部引用的FormulaEvaluator.evaluateAll()使用Apache POI返回RuntimeException

  15. 15

    如何使用Excel宏对具有空单元格的数据进行排序?

  16. 16

    在Java中使用POI读取Excel

  17. 17

    Java POI-从Excel文件读取日期

  18. 18

    使用Poi阅读Java中的Excel FIE

  19. 19

    通过列名称java POI读取excel

  20. 20

    使用Apache POI以Java导出到Excel

  21. 21

    生成2个Excel文件Java POI

  22. 22

    使用java poi自动过滤excel

  23. 23

    用 excel 编写时出错 - Java poi

  24. 24

    检查空白excel单元格的长度时抛出Java空指针异常

  25. 25

    如何使用合并单元格值大于单元格宽度的 Apache-POI 增加 Excel 行的高度?

  26. 26

    将POI中的excel单元格分组,并将第一行作为“ main”

  27. 27

    将POI中的excel单元格分组,并将第一行作为“ main”

  28. 28

    如何在Java中使用POI合并单元格

  29. 29

    如何在Java中使用POI合并单元格

热门标签

归档