gpt4 book ai didi

excel - 如何在 Excel 中从 Javascript Api 编写一个独立于用户语言的公式?

转载 作者:行者123 更新时间:2023-12-04 20:38:25 26 4
gpt4 key购买 nike

我所做的:

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 Dev Center forum 中问过同样的问题并且建议使用 Context.displayLanguageContext.contentLanguage找到语言并使用不同的公式。但这不可能是普遍的。

我现在使用的是在一些工作表和一些单元格(隐藏)中编写公式,然后在其他单元格中使用 FORMULATEXT 以获得正确的公式。例如,如果在单元格 P2 中是这个公式:
=COUNTIF(Test[@[364]:[0]];"<=0")

在 P3 中:
=FORMULATEXT(P2)

加载 Excel 表后,您会得到正确语言的公式,我直接在表格中使用它。尽管公式中有错误,它还是被翻译了。这里是德语:
=ZÄHLENWENN(Test[@[364]:[0]];"<=0")

最佳答案

Office.js Excel API(如之前的 VBA)旨在与语言/区域设置无关。也就是说,当您将公式设置为 range.formulas ,它被设计为只解释英语输入(这就是为什么我们也有 range.formulasLocal ,对应于特定于语言环境的公式版本)。所以你描述的行为,设置 SUM并期望德语 Excel 将其解释为 SUMME绝对是应该的。

有几个问题可以帮助我们对此进行调查:

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

2) 如果可行,设置range.values = yourFormula 怎么样? ?我认为这应该像#1一样工作,但只是想确定一下。

关于excel - 如何在 Excel 中从 Javascript Api 编写一个独立于用户语言的公式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38482319/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com