Как добавить несколько разных столбцов Excel с помощью Apache POI и Java - PullRequest
0 голосов
/ 30 марта 2012

Мне нужно сгенерировать CodeKey, то есть комбинацию two columns значения Excel, и значения в этих столбцах могут быть Boolean, String, Numeric или комбинацией всех этих.

Теперь я могу пройти if/else loop и проверить все условия, но какой эффективный способ сделать это.

Например:

Если у меня есть ExCode = 7V и PrCode = A:, тогда мой CodeKey должен быть 7VA:

 ExCode  PrCode
 6D:     A:
 6R      TR
 7V      6K

И все, что я хочу сделать, это сгенерировать CodeKey как 6D:A:, 6RTR и 7V6K соответственно.

Не хочу делать что-то вроде:

 if(ExCodeCellValue.getCellType() == Cell.CELL_TYPE_STRING &&
           PrCodeCellValue.getCellType() == Cell.CELL_TYPE_STRING){
            System.out.println("Combined String Values: "+ExCodeCellValue.getStringValue()+PrCodeCellValue.getStringValue());
        }

Поскольку было бы много if/else ненужных вещей для генерации codeKey, любое другое эффективное решение для этого или есть какие-нибудь api в POI, которые были бы полезны для этого случая?

1 Ответ

1 голос
/ 02 апреля 2012

Я думаю, вы должны иметь возможность использовать DataFormatter.formatCellValue (ячейка) , которая даст вам строку, которая соответствует тому, что Excel показывает для ячейки.выглядеть примерно так (при условии, что ExCode - это 3-й столбец, PrCode - в 4-м)

// Do this once
DataFormatter formatter = new DataFormatter();

// Once per row
for (Row row : sheet) {
  String exCode = formatter.formatCellValue( row.getCell(2) );
  String prCode = formatter.formatCellValue( row.getCell(3) );

  Cell code = row.createCell(4, Cell.CELL_TYPE_STRING);
  code.setCellValue(exCode + prCode);
}
...