Apache POI - 具有非英文字符的列,例如泰语和单元格为空,然后跳过单元格
Apache POI - Column having non-english characters e.g. Thai and cell empty, then skips the cell
我正在尝试使用 Apache POI 读取 excel 文件 (.xlsx)。
该文件的一列中有非英文字符,例如บริษัทพัฒนาจำกัด (มหาชน)
如果单元格有任何值,则 POI 会使用正确的非英语字符正确读取单元格。但是,如果该特定列中的单元格为空,它将读取当前列名的下一个单元格。
例如如果 column4 具有特殊字符类型并且不为空,则 POI 将 column4 正确映射到该列中的值。
但是,如果 column4 具有特殊字符类型并且为空,则 POI 将 column4 映射到 column5 中的值。
这破坏了完整的结构和 cellIterator。
请告诉我问题是什么以及如何解决?将不胜感激。
谢谢!
终于,我解决了这个问题。虽然很简单。
row.cellIterator()
跳过所有为空的单元格并创建迭代器,因此不匹配。
而是使用 row.getCell(int index)
。这不会跳过空单元格,因此适用于该特定行中的所有单元格。这与非英语字符无关。巧合的只是非英文栏,空单元格实际上是空的。
我正在尝试使用 Apache POI 读取 excel 文件 (.xlsx)。 该文件的一列中有非英文字符,例如บริษัทพัฒนาจำกัด (มหาชน)
如果单元格有任何值,则 POI 会使用正确的非英语字符正确读取单元格。但是,如果该特定列中的单元格为空,它将读取当前列名的下一个单元格。
例如如果 column4 具有特殊字符类型并且不为空,则 POI 将 column4 正确映射到该列中的值。 但是,如果 column4 具有特殊字符类型并且为空,则 POI 将 column4 映射到 column5 中的值。
这破坏了完整的结构和 cellIterator。
请告诉我问题是什么以及如何解决?将不胜感激。
谢谢!
终于,我解决了这个问题。虽然很简单。
row.cellIterator()
跳过所有为空的单元格并创建迭代器,因此不匹配。
而是使用 row.getCell(int index)
。这不会跳过空单元格,因此适用于该特定行中的所有单元格。这与非英语字符无关。巧合的只是非英文栏,空单元格实际上是空的。