2016-05-29 16 views
0

を使用して数式を使用してファイルの更新:はい、その後でU1の合計を加えた場合、行は(ゼロ値を持つExcelは、私はExcelが以下のようにファイルを作成したと、私は次のようにそれを更新するJava

の1-チェック場合次の行をチェックしない場合は、各行にゼロの値があります)。

2-合計後にゼロ値を持つ各行の平均を求めます。

3-ゼロ値のセルを平均値に置き換えます。

4-更新されたExcelを他のExcelにコピーします。

いずれかお手伝いできますか?

XSSFWorkbook workbook = new XSSFWorkbook(); 
    XSSFSheet sheet = workbook.createSheet("correct missing Value"); 
    Map<String, Object[]> data = new TreeMap<String, Object[]>(); 

    data.put("1", new Object[]{"ID", "USERS", I1","I2","I3","I4","I5","I6"}); 
    data.put("2", new Object[]{1, "U1", 4, 2, 3, 5, 3, 4}); 
    data.put("3", new Object[]{2, "U2", 3, 0, 2, 4, 2, 3}); 
    data.put("4", new Object[]{3, "U3", 5, 0, 4, 4, 4, 5}); 
    data.put("5", new Object[]{4, "U4", 0, 1, 2, 4, 2, 3}); 

    Set<String> keyset = data.keySet(); 
    int rownum = 0; 
    for (String key : keyset) { 
     Row row = sheet.createRow(rownum++); 
     Object[] objArr = data.get(key); 
     int cellnum = 0; 
     for (Object obj : objArr) { 
      Cell cell = row.createCell(cellnum++); 
      if (obj instanceof String) 
       cell.setCellValue((String) obj); 
      else if (obj instanceof Integer) 
       cell.setCellValue((Integer) obj); 
     } 
    } 
    try { 

     FileOutputStream out = new FileOutputStream(new File("Test.xlsx")); 
     workbook.write(out); 
     out.close(); 
     System.out.println("Test.xlsx written successfully on disk."); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
    } 

答えて

0

あなただけの忘れた"この行のI1前:

data.put("1", new Object[]{"ID", "USERS", I1","I2","I3","I4","I5","I6"}); 

は正しい行は次のようになります。

data.put("1", new Object[]{"ID", "USERS", "I1","I2","I3","I4","I5","I6"}); 

そして、それが

+0

の作品を私はちょうどそれを忘れましたが、これは私の言いたいことではなく、私のコード は働いている。もしあなたが手助けができたら、私のポイント1〜4を見てください。どうも – Morad

関連する問題