2016-07-07 10 views
1

Office-JS APIでフィルタがアクティブな場合、テーブルからフィルタされた値のみをフェッチする方法を見つけようとしています。Office-JS API:テーブルからフィルタリングされたデータを取得する

は今、私はすべてのテーブルのデータをフェッチするために考え出してきた唯一の方法は、テーブルの範囲からあるプロパティ値:

var table = tables.getItemAt(0); 
var tableRange = table.getRange(); 
tableRange.load("values"); 
ctx.sync().then(function() { 
    // This returns all the values from the table, and not only the visible data 
    var values = tableRange.values; 
}); 

私があれば、テーブルからのみ表示値を取得するために進めることができる方法上の任意のアイデアフィルタはアクティブですか?

以前のOffice Interopの経験から、私はテーブル範囲のさまざまな領域をループすることで同じ結果を達成しましたが、Office-JSの領域と同等のものは見つかりません。

答えて

1

フィルタリングされたデータのみを取得する方法の1つは、Binding.getDataAsync methodです(filterType parameterが必要です)。

Office.select("bindings#myTableBinding1").getDataAsync({ 
    coercionType: "table", 
    filterType: "onlyVisible" 
},function(asyncResult){ 
    var values = (asyncResult.value.rows); 
}); 

このコードでは、既にテーブルへのバインディングが作成されていることを前提としています。ない場合は、Bindings.addFromNamedItemAsyncを呼び出すために、テーブル名を使用した、最初に以下のコードを実行することができます:それは共有のAPIを使用しているため、上記の溶液は、にまでさかのぼるエクセル2013としてサポートされていることを

Office.context.document.bindings.addFromNamedItemAsync("Table1","table",{ 
    id: "myTableBinding1" 
},function(asyncResult){ 
    // handle errors and call code sample #1 
}); 

注意を。 Excel固有のAPIセットには、まだフィルタリングされていないデータのみを返す機能はありません。

-Michaelサンダース、OfficeのアドインのためのPM

+0

こんにちはマイケル:あなたのケースオフテーブルの

使い方は次のようになります。回避策をありがとうございました!それは素晴らしい作品です! VSTO Interop開発から来ている開発者は、新しいJavascript APIを使用する際には非常に異なった考えが必要だと思います。 –

+0

Michaelは、フィルタリングされたデータのフェッチに優れた機能を提供しますが、フィルタリングされた行が削除される純粋な2次元配列の行を返すように見えるので、元のフィルタされていない行番号を保持する方法はわかりますフィルタリングされた結果を処理した後に元のセルに戻って見つけますか? –

1

エクセルJSのAPI 1.3の一部としての機能の今後の次の波は、あなたがオフにのみ表示値を読み取ることができ、新しいオブジェクト「RangeView」が含まれますRangeオブジェクト。 GitHub - https://github.com/OfficeDev/office-js-docs/tree/ExcelJs_1.3_OpenSpec/excelの公開仕様へのリンクがあります。 これはまだ利用可能ではありませんが、近い将来になる予定です。

var table = tables.getItemAt(0); 
var visibleView = table.getRange().getVisibleView(); 
ctx.load(visibleView); 
ctx.sync().then(function() { 
    var values = visibleView.values; 
}); 
+0

こんにちはフィリップ。 華麗!これは私が必要とするものです。うまくいけば、私たちのクライアントがこのアドインをできるだけ早く完成させるように、彼らはすぐにこれをリリースします。一方、私はフィルタのサポートなしで行う必要がありますね。 –

+0

私はMichaelから回避策を試しました。バインドされたテーブルからフィルタリングされた結果をフェッチし、1.3が出るまでそれを使用します。素晴らしい情報をありがとう! –

+0

@MatsOftedal、Philipが述べたAPIはかなり早くBetaに移行する予定です。http://dev.office.com/changelogで新しい変更が表示されます –

関連する問題