Я разрабатываю импорт файлов Excel на моем веб-сайте. Файл Excel может описывать как this .
Родительская объединенная ячейка имеет свой собственный идентификатор, тогда как другие дочерние элементы тоже. Итак, моя задача: получить имя и идентификатор детей, затем найти родителя, получить его имя и идентификатор, а также. Затем свяжите это вместе, сохраните в базе данных.
Я попытался понять, как работает xlsx. В объединенной ячейке они обычно берут первую ячейку в качестве корня, и данные могут извлекаться из этой ячейки, другой ячейки в разделе, считая ее нулевой. Я сделал несколько объектов передачи данных, чтобы получить все, что мне нужно, чтобы сохранить в базе данных.
for (int j = 0; j < 1000; j++) {
if (childRow.getCell(j) != null && !"".equals(childRow.getCell(j).getStringCellValue())) {
listName.add(childRow.getCell(j).getStringCellValue());
}
List<String> listNameWithoutDuplicate = returnListWithoutDuplicate(listName); //a function to remove duplicated element in a list i made ealier.
for (int k = 0; k < listNameWithoutDuplicate.size(); k++) {
if (childRow.getCell(j) != null && parentRow.getCell(j) != null) {
String parentName = parentRow.getCell(j).getStringCellValue();
room.setParentId(parentRepository.getParentByName(parentName).getId());
} //some dtos and query in repo to retrieve data
else if (childRow.getCell(j) != null && parentRow.getCell(j) == null) {
//haven't figure it out
}
}
Но проблема в том, что когда дело доходит до второго потомка родителя, родительская ячейка, которую должна искать дочерняя ячейка, равна нулю. Я работал с некоторой логикой, что, когда бы это ни казалось нулевым, дети возьмут предыдущего родителя. Но я не могу написать это в коде и заставить его работать.
Заранее спасибо.