缺少Apache POI Java的单元策略

有人可以解释一下Apache POIMissing cell policy吗? 究竟缺少什么细胞? 我没有发现Apache POI docs 链接对于究竟是什么遗漏的单元格不言自明。

您是否阅读过Apache POI Excel忙碌开发人员指南 ?

在某些情况下,在迭代时,您需要完全控制缺失或空白行和单元格的处理方式,并且您需要确保访问每个单元格而不仅仅是文件中定义的单元格。 (CellIterator将仅返回文件中定义的单元格,主要是具有值或样式的单元格,但它取决于Excel)。

在这种情况下,您应该获取一行的第一个和最后一个列信息,然后调用getCell(int,MissingCellPolicy)来获取该单元格。 使用MissingCellPolicy控制处理空白或空单元格的方式。

如果您在一行中迭代列,则一些空白的单元格甚至可能不存在,这可能导致毫无疑问的代码抛出NullPointerExceptionMissingCellPolicy在传递给getCell ,会引导并简化代码,告诉Apache POI如何处理这些类型的单元格。

  • CREATE_NULL_AS_BLANK – 如果返回的Cell不存在,则创建一个Cell格类型为“空白”的新Cell ,而不是返回null 。 这有助于方便地避免NullPointerException
  • RETURN_BLANK_AS_NULL – 即使单元格存在但单元格类型为“空白”,也返回null 。 这可以让您忽略容易存在的空白单元格。
  • RETURN_NULL_AND_BLANK – 不要修改现有结构; 对于不存在的单元格返回null ,如果存在,则返回空白Cell ,但其单元格类型为空。 这是不采用MissingCellPolicygetCell重载的行为。