java Apache poi如何将工作表设置为枚举位置值属性?
我正在迭代工作簿,从多个工作表中读取数据,并使用下面的代码合并同一个表中的所有行
public boolean readDataFromExcel(MultipartFile file) {
Workbook workbook = getWorkBook(file);
for (int i = 0 ; i < workbook.getNumberOfSheets(); i++) {
Sheet mySheet = workbook.getSheetAt(i);
Iterator<Row> rows = mySheet.iterator();
rows.next();
while (rows.hasNext()) {
Row row = rows.next();
if (isRowEmpty(row)) {
continue;
}
getItemCellValue(row, file, workbook);
}
}
return true;
}
getItemCellValue方法获取单元格类型并将其设置为相应的属性
private boolean getItemCellValue(Row row, MultipartFile file, Workbook workbook) {
try {
if (row.getCell(0).getCellType() == Cell.CELL_TYPE_NUMERIC) {
item.setItemNumber((float) row.getCell(0).getNumericCellValue());
}
if (row.getCell(1).getCellType() == Cell.CELL_TYPE_NUMERIC) {
item.setHeight(row.getCell(1).getNumericCellValue());
} if (row.getCell(15).getCellType() == Cell.CELL_TYPE_STRING) {
item.setItemDesc(row.getCell(15).getStringCellValue());
}
itemRepository.save(item);
} catch (NullPointerException e) {
e.printStackTrace();
}
return true;
}
例如,我有一个映射到两个位置的枚举属性(位置),我的输入文件应该有两个不同的工作表(选项卡)。这里的目标是设置从图纸中读取和解析项目的位置
例如,如果我有两张工作表,并且从sheet1解析item1,从sheet2解析item2,那么应该设置位置字段以显示项目行退出的正确位置(在这种情况下为sheet1或sheet2)
| item. | itemNo. | location |
|:-----------|------------:|:------------:|
| item1 | 1111 | LOCATION1 |
| item2 | 2222 | LOCATION2 |
解决方案可能是检测每行所属的工作表并在其中设置位置,但我在APACHE POI中找不到任何返回该位置的内容
共 (0) 个答案