我目前有一个使用AngularJS / SpreadJS的解决方案,我们需要用公式更新标头部分。当我们使用setValue更改标题中的单元格值时,所有显示都可以,但是我们需要使用setFormula显示公式,在这种情况下,该公式将被计算并显示在属于我的数据所在实际工作表的行中。
//Does not work and displays in row 2 of the sheet:
sheet.setFormula(2, i, formula, GC.Spread.Sheets.SheetArea.colHeader);
//Displays value in actual header in teh correct location/header cell
sheet.setValue(2, i, 'my formula!', GC.Spread.Sheets.SheetArea.colHeader);
任何帮助将不胜感激。谢谢!
最佳答案
实现以下解决方案以在电子表格的“列标题”中实现SUM公式。可以在电子表格事件(如cellChanged,clipBoardPasted)上调用此函数以实现功能。
var spread = new GC.Spread.Sheets.Workbook($("#ss").get(0), { sheetCount: 2 });
var displaySheet = spread.getSheet(0);
displaySheet.setRowCount(2, GC.Spread.Sheets.SheetArea.colHeader);
for (var i = 0; i < 10; i++) {
for (var j = 0; j < 10; j++) {
displaySheet.setValue(i, j, i + j);
}
}
$("#btnSetAutoTotal").click(function () {
setTotal(displaySheet, 0);
});
function setTotal(sheet, columnIndex) {
var formula = "SUM(R[1]C[1]:R[10]C[10]";
value = GC.Spread.Sheets.CalcEngine.evaluateFormula(sheet, 'SUM(A:A)', 0,
columnIndex, false);
sheet.setValue(0, columnIndex, value, GC.Spread.Sheets.SheetArea.colHeader);
};