如何从Javascript Api中编写一个公式,这与用户语言无关?

我做的事:

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中用德语作为标准语言(在单元格中)使用英文写一个公式吗?

编辑

我将标记迈克尔·兹拉特科夫斯基的答案,因为它正在工作。 但是我没有使用它。 问题是我得到了很多“这个论点是无效的或失踪或格式不正确。”

我在Office开发人员中心论坛上提出了同样的问题,并且build议使用Context.displayLanguage或Context.contentLanguage来查找语言并使用不同的公式。 但是这不能通用。

我现在使用的是在一些表单和一些单元格(隐藏)中写入公式,然后在其他单元格中使用FORMULATEXT来获取正确的公式。 例如,如果在单元格P2中是这个公式:

 =COUNTIF(Test[@[364]:[0]];"<=0") 

在P3中:

 =FORMULATEXT(P2) 

你得到的Excel表格加载后,公式在正确的语言,我在表中直接使用它。 尽pipe公式中的错误被翻译。 这里用德语:

 =ZÄHLENWENN(Test[@[364]:[0]];"<=0") 

Office.js Excel API(如之前的VBA)意味着语言/语言环境不可知。 也就是说,当你将一个公式设置为range.formulas ,它被devise为只解释英文input(这就是为什么我们也有range.formulasLocal ,对应于特定于语言环境的公式的版本)。 所以你所描述的行为,设置SUM ,期待德国Excel把它解释为SUMME这绝对是它应该的。

有几个问题可以帮助我们调查:

1)而不是通过表值设置公式,你可以尝试设置range.formulas

2)如果这有效,那么设置range.values = yourFormula ? 我认为这应该就像#1,但只是想确定。