Apache Пои, как установить листы в атрибут значения местоположения перечисления? - PullRequest
0 голосов
/ 29 февраля 2020

Я перебираю данные книги, прочитанные с нескольких листов, и объединяю все строки в одной таблице, используя приведенный ниже код.

  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;
}

У меня есть атрибут enum (Location), который отображается, например, на 2 местоположения, и мой входной файл должен иметь 2 разных листа (вкладки). Цель здесь - установить местоположение элемента на листе, с которого он был прочитан и проанализирован.

Пример. например, если у меня есть 2 листа, а item1 анализируется из sheet1, а item2 - из sheet2, тогда в поле местоположения должно быть указано правильное местоположение, из которого выходит строка элемента (в данном случае - sheet1 или sheet2).

| item.      | itemNo.     | location     |
|:-----------|------------:|:------------:|
| item1      |    1111     |  LOCATION1   |
| item2      |    2222     |  LOCATION2   |

решение, вероятно, заключалось бы в том, чтобы определить, к какому листу относится каждая строка и установить там местоположение, но тогда я не смог найти ничего, что возвращает это в APACHE POI?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...