Java小学徒_wmm 2023-06-20 11:16 采纳率: 50%
浏览 16
已结题

Java读取Excel

org.apache.poi 相关问题

poi读取Excel文件,为什么被删除掉内容的空行,仍然会被识别呢?

       XSSFWorkbook xssfWorkbook = new XSSFWorkbook(fileInputStream);
       XSSFSheet sheet = xssfWorkbook.getSheetAt(1);
       //比如我获取最后一行行号,被删除掉内容的行,然后会被识别。
       int maxRow = sheet.getLastRowNum();

请求各位指教。

  • 写回答

3条回答 默认 最新

  • 黄以礼 2023-06-20 11:27
    关注

    这是因为poi在读取Excel文件时,对于每个单元格,它不仅会检查其值是否为空,还会检查单元格是否为“真正”的空单元格。如果一个单元格的值是空字符串或null,但单元格中仍然包含格式、边框、颜色等其他属性,那么这个单元格仍然会被识别为非空单元格。

    如果你想要过滤掉被删除掉内容的空行,你可以在读取Excel文件之后,对每一行进行遍历,判断该行所有单元格是否都为空。如果存在非空单元格,则将该行过滤掉。如果所有单元格都为空,则可以保留该行或者根据需要进行其他处理。

    以下是一个示例代码片段,用于读取Excel文件并过滤掉被删除掉内容的空行:

    java

     
    // 创建Workbook对象  
    Workbook workbook = WorkbookFactory.create(new File("example.xlsx"));  
      
    // 获取Sheet对象  
    Sheet sheet = workbook.getSheetAt(0);  
      
    // 遍历每一行  
    for (Row row : sheet) {  
        // 判断该行所有单元格是否都为空  
        boolean isBlankRow = true;  
        for (Cell cell : row) {  
            if (cell.getCellType() != CellType.BLANK) {  
                isBlankRow = false;  
                break;  
            }  
        }  
          
        // 如果该行所有单元格都为空,则过滤掉该行  
        if (isBlankRow) {  
            continue;  
        }  
          
        // 如果需要进行其他处理,可以在这里进行操作  
        // ...  
    }
    
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 7月6日
  • 已采纳回答 6月28日
  • 创建了问题 6月20日

悬赏问题

  • ¥15 关于#java#的问题,请各位专家解答!
  • ¥15 急matlab编程仿真二阶震荡系统
  • ¥20 TEC-9的数据通路实验
  • ¥15 ue5 .3之前好好的现在只要是激活关卡就会崩溃
  • ¥50 MATLAB实现圆柱体容器内球形颗粒堆积
  • ¥15 python如何将动态的多个子列表,拼接后进行集合的交集
  • ¥20 vitis-ai量化基于pytorch框架下的yolov5模型
  • ¥15 如何实现H5在QQ平台上的二次分享卡片效果?
  • ¥30 求解达问题(有红包)
  • ¥15 请解包一个pak文件