2012-03-30 63 views
0

Excel中的多個不同的列我需要生成CodeKey是在那些列Excel的價值和價值觀的two columns組合可以是所有的BooleanStringNumeric或組合。如何添加使用Apache POI和Java的

現在我可以通過if/else loop並檢查每個條件,但是這樣做會是一種有效的方式。

例如:

如果我有ExCode = 7VPrCode = A:然後我CodeKey應該7VA:

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

和所有我想要做的就是產生CodeKey爲6D:A:,分別6RTR7V6K

不想做這樣的事情:

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,這樣做的任何其他有效的解決方案或有任何apiPOI這將是對這種情況有用嗎?

回答

1

我認爲你應該能夠使用DataFormatter.formatCellValue(cell)這將給你一個字符串,匹配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); 
} 
+0

謝謝,這是我一直在尋找。 – Rachel 2012-04-02 13:53:45