2011-08-05 6 views
-1

apache poi.iを使用してファイルを読み込むためのJavaコードが必要です。実行時にセルデータを読み込みながら、Cellデータ型をStringに設定しています。後 cellData.getStringCellValue() --> "Ramki"実行時のセルデータ型の設定apache poi.iでセルデータを削除する

:前の元

ため cellData.setCellType(Cell.CELL_TYPE_STRING); System.out.println("The cell data is: " + cellData.getStringCellValue()); ---> ""

我々は、実行時にセルのデータ型を変更することができます。

私はApacheを使用しています。POI 3.7

私にこれを手伝ってください。

ありがとう、 Ramki。

+0

あなたがしようとしていることとあなたが抱えている問題は明確ではありません。なぜ、既存のセルタイプを文字列に設定していますか? – Gagravarr

+0

私は数値データと文字列データをコード内で扱いたいと思っています。まず、セルのデータ型が数値かどうかをチェックします。それが数字でない場合は、そのセルタイプを文字列に変更したい(タイプにかかわらず、式、エラー、..など) – Ramki

答えて

1

私が正しく理解すれば、基本的にExcelが各セルに表示するテキストです。

この場合、キークラスはDataFormatterになります。これはこれを行います。

POIのExcelExtractorクラスを見てみると、これを実行した例が完全に表示されます。

HSSFCell cell = row.getCell(k); 

switch(cell.getCellType()) { 
    case HSSFCell.CELL_TYPE_STRING: 
     text.append(cell.getRichStringCellValue().getString()); 
     break; 
    case HSSFCell.CELL_TYPE_NUMERIC: 
     text.append(
       _formatter.formatCellValue(cell) 
     ); 
     break; 
    case HSSFCell.CELL_TYPE_BOOLEAN: 
     text.append(cell.getBooleanCellValue()); 
     break; 
    case HSSFCell.CELL_TYPE_ERROR: 
     text.append(ErrorEval.getText(cell.getErrorCellValue())); 
     break; 
    case HSSFCell.CELL_TYPE_FORMULA: 
     if(outputCellFormulas) { 
      text.append(cell.getCellFormula()); 
     } else { 
      switch(cell.getCachedFormulaResultType()) { 
       case HSSFCell.CELL_TYPE_STRING: 
        HSSFRichTextString str = cell.getRichStringCellValue(); 
        if(str != null && str.length() > 0) { 
         text.append(str.toString()); 
        } 
        break; 
       case HSSFCell.CELL_TYPE_NUMERIC: 
        HSSFCellStyle style = cell.getCellStyle(); 
        if(style == null) { 
         text.append(cell.getNumericCellValue()); 
        } else { 
       text.append(
         _formatter.formatRawCellContents(
          cell.getNumericCellValue(), 
          style.getDataFormat(), 
          style.getDataFormatString() 
         ) 
       ); 
        } 
        break; 
       case HSSFCell.CELL_TYPE_BOOLEAN: 
        text.append(cell.getBooleanCellValue()); 
        break; 
       case HSSFCell.CELL_TYPE_ERROR: 
        text.append(ErrorEval.getText(cell.getErrorCellValue())); 
        break; 

      } 
     } 
     break; 
    default: 
     throw new RuntimeException("Unexpected cell type (" + cell.getCellType() + ")"); 
} 
+0

ありがとう。それは私が問題を解決するのを助けました。 – Ramki

関連する問題