Что я делаю:Как написать формулу из Javascript Api в Excel, которая не зависит от языка пользователя?
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 с немецким стандартным языком?
Edit:
Я отметит ответ на Майкла Златковский, потому что она работает. Но я не использую его. Проблема в том, что я получаю много «аргумент недействителен или отсутствует или имеет неправильный формат».
Я задал тот же вопрос в Office Dev Center forum и предложил использовать Context.displayLanguage или Context.contentLanguage, чтобы найти этот язык и использовать разные формулы. Но это не может быть универсальным.
То, что я использую сейчас, это написать формулы на каком-то листе и некоторых ячейках (скрытых), а затем использовать FORMULATEXT в другой ячейке, чтобы получить правильную формулу. Например, если в ячейке Р2 эта формула:
=COUNTIF(Test[@[364]:[0]];"<=0")
и P3:
=FORMULATEXT(P2)
вы получите после того, как лист первенствовать загружен, формула на правильном языке, и я использую его прямо в стол. И, несмотря на ошибки в формуле, она переводится. Здесь на немецком языке:
=ZÄHLENWENN(Test[@[364]:[0]];"<=0")
Просто предположим, но я думаю, что вы изменяете текст ячейки вместо формул. Попробуйте перекопать в свойство формул отдельных ячеек. – Taosique