diff --git a/js/src/widget_export.js b/js/src/widget_export.js index 123f6b4..a9f7508 100644 --- a/js/src/widget_export.js +++ b/js/src/widget_export.js @@ -60,10 +60,22 @@ exportFunc.exportRangeData = (options, view) => { // Export Rows exportFunc.exportRows = (options, view) => { - const rows = options.api.getSelectedNodes(); + //const rows = options.api.getSelectedNodes(); + const rows = getSelectedNodesAsDisplayed(options); exportRowsFunc(options, view, rows); }; +const getSelectedNodesAsDisplayed = (options) => { + // Returns selected nodes in order as shown in table (with filter, sort, & grouping) + const rowNodes = []; + options.api.forEachNodeAfterFilterAndSort((node) => { + if (!node.group && node.selected) { + rowNodes.push(node); + } + }); + return rowNodes; +}; + const exportRowsFunc = (options, view, rows) => { const cols = findCorrectColumns(options.columnApi.getAllDisplayedColumns(), options); const { data: nodes, values: columns } = getProcessedSelectedRows(options, rows, cols);