2017-07-31 14 views
0

私はにしようとしています(同じワークブックで)他のシートから既存のセルの値を使用してセルの値を置き換えるどのようにセルの値を置き換えるために - ApacheのPOI

マイコード:

public static void update_sheet(XSSFWorkbook w) 
    { 
    XSSFSheet sheet,sheet_overview; 
    sheet_overview = w.getSheetAt(0); 
    int lastRowNum,latest_partition_date; 
    latest_partition_date = 3; 
    XSSFRow row_old, row_new; 
    XSSFCell cell_old, cell_new; 


    for(int i=1;i<=10;i++) 
     { 
      sheet = w.getSheetAt(i); 

      lastRowNum = sheet.getLastRowNum(); 

      row_old = sheet.getRow(lastRowNum); 
      cell_old = row_old.getCell(0); //getting cell value from a sheet 

      row_new = sheet_overview.getRow(latest_partition_date); 
      cell_new = row_new.getCell(5); 
      ***cell_new.setCellValue(cell_old)***;//trying to overwrite cellvalue 

      latest_partition_date++; 
     } 

    } 

'タイプ' の値は、私がコピーしようとしています

7/10/2017 
7/11/2017 
7/12/2017 
7/13/2017 
2017-07-14 
2017-07-15 

エラー

Exception in thread "main" java.lang.Error: Unresolved compilation problem: 
    The method setCellValue(boolean) in the type XSSFCell is not applicable for the arguments (XSSFCell) 

at Sample2.update_overview_sheet(Sample2.java:78) 
at Sample2.main(Sample2.java:26) 

ご協力いただきありがとうございます。

+0

投稿を見ることができますhttps://stackoverflow.com/questions/24574490/changing-value-of-cell-in-excel-via-apache-poi – Akash

答えて

2

問題はgetCell()タイプのセルの値を返すことです。実際にはそのセルの値ではなく、セルオブジェクト自体の値を取得しています。 setCellValueで値を設定するためには、あなたはそれを価値、日付何か、ブール値、文字列、richtextstringなど、セルのためのApache POIのドキュメントのlisted hereだのいずれかの方法を提供する必要があります。

+0

こんにちはTim、私はこれを試しました** s = row_old。 getCell(0).toString(); cell_new = sheet_overview.getRow(2).getCell(5); \t \t \t \t cell_new.setCellValue(S); \t \t \t latest_partition_date ++; ** NullPointerExceptionが発生する – Chid

+0

セルオブジェクトを引数にとり、文字列に変換します。 [getStringValue()](https://poi.apache.org/apidocs/org/apache/poi/ss/usermodel/CellValue.html#getStringValue())メソッドを使用する必要があります。 –

+0

助けてくれてありがとうTim – Chid

関連する問題