考虑以下Excel表格
Id Reference Id Name
20059136 Gj
20012323 Am
如何处理Event model
XSSFReader
中缺少的单元格,在此处读取数据时,会跳过列Reference Id
并发生一次左移,因此Name
列中的所有值都会显示被附加到读取输出中的Reference Id
。
如何使用Apache POI
' XssfReader'找到丢失的单元格或空/空白单元格和' SheetContentsHandler'。
missing cells
? MissingCellPolicy
醇>
引用
答案 0 :(得分:0)
希望这有帮助,
@Override
public void cell(String cellReference, String formattedValue, XSSFComment comment) {
if (currentRow == this.headerRow) {
// populate headers
populateHeaders(cellReference, formattedValue));
} else if(currentRow > this.headerRow){
// populate values based on position referencing particular header
final String header = headers.get(cellReference.replaceAll(String.valueOf(currentRow + 1), "") + this.headerRow);
values.put(header, formattedValue);
}
}
黑客使用以下方法获取currentRow
@Override
public void startRow(int rowNum) {
currentRow = rowNum;
values = new LinkedHashMap<>();
}
使用标题位置填充提取的数据
// populate values based on position referencing particular header
final String header = headers.get(cellReference.replaceAll(String.valueOf(currentRow + 1), "") + this.headerRow);
以后可以使用基于自己的逻辑的空白,空或自定义值清除缺少的单元格,谢谢。