私がやること:
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 フォーラムで同じ質問をしたところ、Context.displayLanguageまたはContext.contentLanguageを使用して言語を見つけ、別の式を使用するという提案がありました 。しかし、これは普遍的ではありません。
私が現在使用しているのは、数式をいくつかのシートといくつかのセル (非表示) に書き込んでから、他のセルで FORMULATEXT を使用して正しい数式を取得することです。たとえば、セル P2 に次の式がある場合:
=COUNTIF(Test[@[364]:[0]];"<=0")
そしてP3で:
=FORMULATEXT(P2)
Excelシートがロードされた後、適切な言語の式が得られ、テーブルで直接使用しています. そして、式のエラーにもかかわらず、それは翻訳されています. ここでドイツ語で:
=ZÄHLENWENN(Test[@[364]:[0]];"<=0")