0

microsofts JavaScript API を使用して Excel 作業ウィンドウ アプリを作成しました。一部のデータを含む Excel シートへのバインディングを作成しました。

何かのようなもの:

Column1 | Column2
Value1  | Value2
Value1  | Value1
Value2  | Value3

私のアプリは、各列のグラフを作成しました( 付きdc.js)。次に、ユーザーはグラフを使用してフィルター処理できるため、アプリはフィルター処理されたデータをバインディングに書き込むことができます。

小さなバインド範囲ですべてが正常に機能します。バインド範囲を約 1500 行 3 列に増やすと、バインド データが更新されなくなります。Excel でエラーが表示されることはありません。何もしません。

これは私のコードの簡略版です:

createBinding({ id, callback = ()=>{}, type = 'matrix' }) {
    Office.context.document.bindings.addFromSelectionAsync(type, {id}, callback);
}

// options = { coercionType: "matrix" }
setBindingData({ id, data, options, callback }) {
    Office.select(`bindings#${id}`).setDataAsync(data, options, callback);
}

問題は、すべてのデータの最大サイズだと思います。しかし、私は最大サイズが何であるかを知りたいですか? stackoverflow または Microsoft のドキュメントで何かを見つけることができませんでした。

4

2 に答える 2

1

O365 では、1 回の操作でアプリが 5 秒以上ハングすることが許可されていないことが原因である可能性があります。非同期呼び出しを使用してみてください。

于 2015-06-19T01:38:29.540 に答える
0

私もこの質問に興味があったので、いくつかのテストを実行しましたが、空のセルとデータの間には大きな違いがあるようです. 約 400 万個の空白セルからデータをバインドして読み取ることができました。しかし、いくつかの単純なデータを追加すると、これは約 90,000 セルになりました。ビンディングの形状は、縦長でも横長でも大差ないように見えました。したがって、あなたのセルには、私のテスト データよりも多くのデータが含まれている可能性があります。

代わりに documentselectionchanged ハンドラーを使用して何かを解決できる場合があります。たとえば、行をループし、変更に応じてデータを取得します。

詳細については、 http://microsoft-office-add-ins.comを参照してください。

于 2015-08-20T16:04:07.310 に答える