2017-07-04 5 views
0

無限の行モデル(無限スクロール)が反応する場合に、AgGridデータをエクスポートする方法を教えてください。 通常の行モデルでは、このようにして行われます。無限の行モデル(無限スクロール)の場合にAgGridデータをエクスポートするにはどうすればいいですか

this.gridOptions.api.exportDataAsCsv(params);

無限行のモデルケースについてはどう?ここで

答えて

2

は、私が実装しましたソリューションです。 グリッドのフッター、複数のヘッダーはここでは考慮されません。 このコードは、ヘッダーとその下に行がある単純なグリッドです。 無限スクロールと動的列の場合(場合によっては列を変更することができます)。

var LINE_SEPARATOR = '\r\n'; 
var COLUMN_SEPARATOR = ','; 
var fileName = 'export.csv'; 

let csvString = ''; 
let columnsToExport = this.gridOptions.api.columnController.getAllDisplayedColumns(); 

// adding column headers. 
columnsToExport.map((column) => { 
    csvString+= column.colDef.headerName; 
    csvString+= COLUMN_SEPARATOR; 
}); 
csvString+= LINE_SEPARATOR; 

// adding content of data currently loaded in the grid. 
this.gridOptions.api.forEachNode(function(node) { 
    node.columnController.allDisplayedColumns.map((column) => { 
    let cellContent = node.valueService.getValue(column, node); 
    csvString+= (cellContent != null) ? cellContent : ""; 
    csvString+= COLUMN_SEPARATOR; 
    }); 
    csvString+= LINE_SEPARATOR; 
}); 

// for Excel, we need \ufeff at the start 
var blobObj = new Blob(["\ufeff", csvString], { 
    type: "text/csv;charset=utf-8;" 
}); 
// Internet Explorer 
if (window.navigator.msSaveOrOpenBlob) { 
    window.navigator.msSaveOrOpenBlob(blobObj, fileName); 
} 
else { 
    // Chrome 
    var downloadLink = document.createElement("a"); 
    downloadLink.href = window.URL.createObjectURL(blobObj); 
    downloadLink.download = fileName; 
    document.body.appendChild(downloadLink); 
    downloadLink.click(); 
    document.body.removeChild(downloadLink); 
} 
関連する問題