2017-06-11 6 views
0

Apache POIを使用してExcelリーダーを作成しました。この後新しいcellToString(セル)メソッドを作成する代わりに、cell.toString()を使用してexcelセルの値を文字列に直接変換できない理由

cell=sh.getRow(row).getCell(col); 

が、私はどのようなタイプのものとすることができる私のExcelシートのセルなどの文字列にセルオブジェクトを変換したいので、私は、一般的な文字列値に変換しています:私は、セルの値を取得することができています。 だから、私はそれを行うことができますだけで書き込むことにより、次のとおりです。

public String cellToString(HSSFCell cell){ 
int type; 
    Object result; 
    type=cell.getCellType(); 

    switch(type){ 
     case 0: 
      result=cell.getNumericCellValue(); 
      break; 
     case 1: 
      result=cell.getStringCellValue(); 
      break; 
      default: 
       throw new RuntimeException("There is no support of this type of cell"); 
    } 
      return result.toString(); 
} 

そして、上記を呼び出します。しかし、私は一般的に、すなわち続いての練習は、以下のような新しいcellToStringメソッドの作成を参照してください

data[row][col]=cell.toString(); 

を次のような機能があります。

data[row][col]=cellToString(cell); 

誰かが私たちが最初のアプローチに従っていない理由を教えてもらえますか?

+1

私の意見では、「Excel」セルに表示されるテキストを取得する必要がある場合、ベストプラクティスは 'DataFormatter'を使用しています。 https://poi.apache.org/spreadsheet/quick-guide.html#CellContentsをご覧ください。 –

答えて

0

私はほとんどの時間は、あなたが例のように、ラッパーを持つ方が良いだろうと賭けたい:

  • はあなたの細胞にのみ、特定のタイプが処理されていることを確認したい、上投げ明らかに上記cellToString()の実装など、他のすべての種類は、やってみたかった

  • あなたが不足していると、空のセルを区別するために気にしない、とあなたのコードがnull

    ためgetCell()からの戻り値をチェックして振りかけたくありません
  • あなたは、セルのデフォルトのフォーマット

..またはその他の場合あなたがかむだけで任意の文字列を持って幸せじゃないと満足していません。あなたの走行距離は確かに変わります。

関連する問題