2017-07-25 133 views
1

我有一個handontable demoHandsontable交叉計算

document.addEventListener("DOMContentLoaded", function() { 

    var 
    example = document.getElementById('example1'), 
    hot1; 

    hot1 = new Handsontable(example, { 
    data: [ 
     ['', '', '', ''], 
     [1, 2, 3, '=SUM(A2:C2)'], 
     [1, 2, 3], 
    ], 
    width: 584, 
    height: 320, 
    rowHeaders: true, 
    formulas: true, 
    colHeaders: true, 
    columns: [1, 2, 3, 4], 
    columnSummary: function() { 
     var summary = []; 
     for (var i = 0; i < 4; i++) { 
     summary.push({ 
      ranges: [[1, 2]], 
      destinationRow: 0, 
      destinationColumn: i, 
      type: 'sum', 
      forceNumeric: true, 
      sourceColumn: i 
     });   
     } 

     return summary; 
    } 
    }); 

}); 

它caclulates:

  • 總和,並把結果在第一胎。
  • 薩姆行(除了第一個),並把它在列「d」

我需要計算正確的總的總數,這是細胞D1。 加載和更改D1的任何單元格計算後必須正常工作。

謝謝你的任何想法。

回答

0

選項columnSummary不應應用於第4列(SUM結果列)。嘗試應用的你的代碼columnSummary選項僅適用於前三列:

for (var i = 0; i < 3; i++) //Instead of i < 4 

與該行中使用一個你用什麼來計算您的其他行的總和:

data: [ 
    ['', '', '', '=SUM(A1:C1)'], 
    [1, 2, 3, '=SUM(A2:C2)'], 
    [1, 2, 3, '=SUM(A3:C3)'], 
], 

你會看到它的作用像一個魅力:JSFiddle

+0

不完全是我所需要的。我想在D2中看到D1的總和:D3。正確的答案之一是http://jsfiddle.net/m61486rh/1/。但我更喜歡避免使用公式。 –