Что я делаю:
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 и предложение было использовать Context.displayLanguage или Context.contentLanguage, чтобы найти язык и использовать разные формулы. Но это не может быть универсальным.
Сейчас я использую для записи формул на каком-то листе и в некоторых ячейках (скрытых), а затем использовать FORMULATEXT в другой ячейке, чтобы получить правильную формулу. Например, если в ячейке P2 есть эта формула:
=COUNTIF(Test[@[364]:[0]];"<=0")
и в P3:
=FORMULATEXT(P2)
после загрузки листа Excel вы получаете формулу на нужном языке, и я использую ее прямо в таблице. И, несмотря на ошибки в формуле, она переведена. Здесь по-немецки:
=ZÄHLENWENN(Test[@[364]:[0]];"<=0")