当前位置: 首页 > 知识库问答 >
问题:

Apache POI忽略文本格式的空单元格

百里朝
2023-03-14

我正在使用Apache POI解析Excel。是否可以让Apache POI将空字符串视为null并忽略它们?

可能有excel表将数百万个单元格设置为文本,如下所示,导致所有单元格被Apache POI解释为空字符串。由于有数百万个空的字符串单元格,逐个单元格地检查会导致严重的性能问题:

无论如何,Apache POI是否可以忽略这些空字符串单元格,这样我们就不必逐个单元格地单独读取单元格来检查单元格是否为空字符串?

InputStream is = new ByteArrayInputStream(content);
Workbook wb = WorkbookFactory.create(is);
wb.setMissingCellPolicy(RETURN_BLANK_AS_NULL);
for (int i = 0; i < wb.getNumberOfSheets(); i++) {
   Sheet sheet = wb.getSheetAt(i);
   for (int i = firstRowNumber; i <= sheet.getLastRowNum(); i++) {
   Row row = sheet.getRow(i);   // Row is returning all the empty strings but I would like to ignore them and treat them as null (empty cell)
   // ...
   }
}

共有1个答案

柴瀚昂
2023-03-14

你可以这样做来忽略空的字符串

String value = sheet.getRow(i).getCell(0).getStringCellValue();
if(value == null || value.equalsIgnoreCase("")) {
    //Your code
}
 类似资料:
  • 读取文件已支持 windows 系统,版本号大于等于 1.3.4.1; 扩展版本大于等于 1.2.7; PECL 安装时将会提示是否开启读取功能,请键入 yes; 测试数据准备 $config = ['path' => './tests']; $excel = new \Vtiful\Kernel\Excel($config); ​ // 写入测试数据 $filePath = $excel->f

  • 问题内容: 我有一个问题,当java应用程序读取Excel文件.xlsx扩展名时,该应用程序正常工作,但是在工作簿中有很多工作表,其中1、2个工作表正确读取,但是当读取3个工作表时,没有读取所有单元格当我打开并从Excel文件中检查时,单元格存在空值,但是当apache poi读取该单元格时,该单元格将被忽略。原因是什么? 更新资料 在读取excel文件上方,虽然我在一行中检查了Excel文件20

  • 我有一个问题,当java应用程序读取Excel文件.xlsx扩展时,应用程序正常工作,但工作簿中有很多工作表,1、2个工作表正确读取,但当读取3个工作表时,没有读取所有单元格,当我打开并检查Excel文件时,单元格存在空值,但当apache poi读取它时,单元格只是忽略了空单元格。什么是事业?更新 上面读的是excel文件,而我检查的excel文件中有一行20个单元格,而它读的有的行只有14行。

  • 当有空单元格时,我在对列进行排序时有问题。 我为我的列创建了一个新的: 一开始,它似乎很管用: 非常感谢Jai,我修改您的代码只是因为我想将其用于两个不同的列:

  • 问题内容: 什么是运行查询以便忽略字段中的空格的最佳方法?例如,以下查询: 将找到以下条目: 我正在使用php或python,但我认为这没有关系。 问题答案:

  • 我有一个巨大的excel文件,其中包含大量列,如下所示:- 当我打印excel中的所有值时,我的代码生成的输出是:- 所以,如果我们看看上面的输出,我们可以注意到我留下空白值的单元格没有被POI库拾取。有没有一种方法可以让这些值为空?还是一种识别所呈现的值跳过空白单元格的方法? 请注意:我使用的不是usermodel(org.apache.poi.ss.usermodel),而是一个事件API来处