2017-03-21 4 views
1

角度アプリケーションでグリッドビューを作成する場合は、UI-Gridを使用しています。 UIグリッドは、フィルタリングされフルグリッドのデータをcsv形式またはpdf形式にエクスポートします。しかし、私はデータをExcelにエクスポートする必要があります。角度UIをエクスポートする方法 - グリッドフィルタリングとフルデータをExcelに変換

以前のAlasqlを使ってグリッドデータをエクスポートしましたが、そこではng-repeatを使ってグリッドを生成していました。

ここでUiグリッドディレクティブはグリッドの生成を処理し、UIグリッドディレクティブによって公開される簡単なメソッドを使用してデータをエクスポートすることができます。誰かがデータをExcelにエクスポートしようとしたかどうかを知りたかっただけです。

私はUI-Gridチュートリアルで提供されているコードと同じコードを使用していますので、コードを共有していないので、Excelファイルでエクスポートする必要があります。

+0

私は今考えている最も簡単な方法は、CSV形式のコンテンツを生成し、それをCSV拡張子のあるBLOBオブジェクトとしてダウンロードすることです。 – neptune

+0

csvデータはExcelで自動的に開きます。 UI-Gridも使用していますが、CSVとしてエクスポートして「開く」をクリックするとExcelが開き、データがワークシートに表示されます。ダウンロードしたCSVデータを開くとどうなりますか? –

+0

一般にExcelでcsvを開くと、すべてのデータが1つの列に表示されます。 Data> Textオプションを使用してcsvをExcelにインポートし、delimeterとして '、'を指定していない限り、このアクションをcsvファイルで一度も実行しても、excelは同じ区切り文字を適用し、いつでも別の列にデータを生成し、後でcsvをExcelで開きます。 – techprat

答えて

2

私はこのようalasql使用していたXLSXするために、データをエクスポートするには、あまりにもUIグリッドを使用してアプリで働いている:私はそれはこのようgridApiを使用して取得

$scope.exportXLS = function exportXLS() { 
    alasql.promise('SELECT * INTO XLSX("data.xlsx",{headers:true}) FROM ?',[$scope.gridOptions.data]) 
.then(function(data){ 
    console.log('Data saved as XLSX'); 
    }).catch(function(err){ 
    console.log('Error:', err); 
    }); 
}; 

だけfilterdデータをエクスポートします:

$scope.filteredData =$scope.gridApi.core.getVisibleRows($scope.gridApi.grid); 

その後、返される配列内の各オブジェクトから新しい配列 にエンティティフィールドをマップし、私はアンダースコアのlibからマップ機能を使用していることを行って。

entities = _.map($scope.filteredData, 'entity'); 

最後に、 '$ scope.gridOptions.data'を上記の関数の 'entities'に置き換えます。

+0

完全なデータのエクスポートは正常ですが、グリッド上でgetVisibleRowsメソッドを使用すると、フィルタリングされた行についてのメタデータが返され、それらの行のデータは返されません。 – techprat

+1

あなたは間違いありません。関数gridApi.core.getVisibleRowsは、オブジェクトの配列を返します。それらのすべてにはエンティティフィールド(実際の行)が含まれています。行だけを取得するために、私はアンダースコアのlibからマップ関数を使用しました "entities = _.map($ scope.filteredData、 'entity');"。 – Marian

+0

クールな仕事、多くのありがとう:) – techprat

関連する問題