可上手的交叉计算

Handsontable cross calculations

我有一个handontable demo.

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;
    }
  });

});

计算:

我需要计算正确的总数,即单元格 D1。 加载和更改 D1 的任何单元格计算后必须正常工作。

感谢您的任何想法。

选项 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