可上手的交叉计算
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;
}
});
});
计算:
- 列的总和并将结果放在第一个原始数据中。
- 行总和(第一行除外)并将其放入列 "D"
我需要计算正确的总数,即单元格 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。
我有一个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;
}
});
});
计算:
- 列的总和并将结果放在第一个原始数据中。
- 行总和(第一行除外)并将其放入列 "D"
我需要计算正确的总数,即单元格 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。