我所做的:
var myTable = new Office.TableData();
.....
var y = [];
y.push(...);
.....
y.push('=SUM(Test[@[364]:[0]])/365');
y.push(...);
.....
myTable.rows.push(y);
然后
binding.addRowsAsync(myTable.rows, function (addResult){....});
现在一切正常,如果用户在 Excel 中使用英语。但是如果他使用德语,就会出现“#NAME?”,因为在德语中 SUM 必须是 SUMME。如何从 Javascript Api 编写一个独立于用户语言的公式?
或者问题可能是:我可以(在单元格中)在 Excel 中以德语为标准语言编写英文公式吗?
编辑:
我会标记 Michael Zlatkovsky 的答案,因为它有效。但我没有使用它。问题是我收到很多“参数无效或丢失或格式不正确”。
我在Office 开发中心论坛中提出了同样的问题,并建议使用 Context.displayLanguage或Context.contentLanguage来查找语言并使用不同的公式。但这不可能是普遍的。
我现在使用的是在一些工作表和一些单元格(隐藏)中编写公式,然后在其他单元格中使用 FORMULATEXT 以获得正确的公式。例如,如果在单元格 P2 中是这个公式:
=COUNTIF(Test[@[364]:[0]];"<=0")
在 P3 中:
=FORMULATEXT(P2)
加载 Excel 表后,您会得到正确语言的公式,我直接在表格中使用它。尽管公式中有错误,它还是被翻译了。这里是德语:
=ZÄHLENWENN(Test[@[364]:[0]];"<=0")