所以我从服务器加载csv文件,插入js函数调用,用jquery.sheet创建表/表。到目前为止,一切都有效,但是当我将函数放入列表时,它们无法计算。
在修改任何内容之前,td的工作表(简化)数据对象具有此内容:
Object {td: x.fn.x.init[1], dependencies: Array[0], formula: "", cellType: null, value: "=A2+B2+C2"…}
当我设置公式值时,它将更改为:
Object {td: x.fn.x.init[1], dependencies: Array[0], formula: "=A2+B2+C2", cellType: null, value: "=A2+B2+C2"…}
所以我理解如何设置公式和值,但我想做的是触发一个事件来自动计算一个单元格,希望基于一个" X,Y"协调,或发现我采取了错误的方法。 我不知道这是否有帮助但是当我去编辑一个单元格时它会显示为== A2 + B2 + C2不是= A2 + B2 + C2
我会提供我的代码,但由于C#asp和js的交互,它并不短暂,我认为它不会有帮助。
答案 0 :(得分:0)
解决:
将公式从csv文件加载到jquery.sheet实例然后计算,有两件事是必不可少的。首先是手动设置对象[“formula”]属性,而在开头省略'=',因为它添加了自己的属性。然后你必须触发“calc(s,true)”函数,其中s作为工作表索引,在我的情况下,我将true作为第二个参数,因为我相信它强制计算具有函数的单元格。
var sheets = jQuery.sheet.instance[0];
for (var s = 0 ; s < names.length; s++) {
var sheet = sheets.spreadsheets[s];
for (var k = 1; k < sheet.length; k++) {
var row = sheet[k];
for (var j = 1; j < row.length; j++) {
var col = row[j];
//alert(cell.value);
if (col.value.startsWith("=")) {
col["formula"] = col.value.substring(1, col.value.length);
}
}
}
sheets.calc(s, true);
}
如果找到更好的方法,请告诉我。我不认为这是可扩展的,因为它是O(n ^ 3)。