0

I need to generate CodeKey that is combination of two columns of excel value and values in those columns can be Boolean, String, Numeric or combination of all of those.

Now I can go through if/else loop and check for every condition but what would be an efficient way of doing this.

For Example:

If i have ExCode = 7V and PrCode = A: then my CodeKey should be 7VA:

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

And all i want to do is generate CodeKey as 6D:A:, 6RTR and 7V6K respectively.

Don't want to do something like:

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

As there would be lots of if/else unnecessary stuffs to generate codeKey, any other efficient solution of doing this or is there any api in POI that would be useful for this case?

1 Answer 1

1

I think you should be able to use DataFormatter.formatCellValue(cell) which will give you a string that matches what Excel shows for a cell.

With that, you could would look something like (Assuming the ExCode is the 3rd column, PrCode in the 4th)

// 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);
}
Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.