Link to home
Start Free TrialLog in
Avatar of VKN9876
VKN9876

asked on

Flex DataGrid export to MS Excel question.

I have an AdvancedDatagrid with multirow select enabled.My user want to export the grid data to Excel. My function export all grid data to excel. How do I export only selected rows, if the user select multiple rows. Any help appreciated.

Code attached.
public static function exportCSV(dg:AdvancedDataGrid, csvSeparator:String=",", lineSeparator:String="\n"):String {
            var data:String = "";
            var columns:Array = dg.columns;
            var columnCount:int = columns.length;
            var column:AdvancedDataGridColumn;
            var header:String = "";
            var headerGenerated:Boolean = false;
            var dataProvider:Object = dg.dataProvider;
 
            var rowCount:int = dataProvider.length;
            var dp:Object = null;
            var str:String = '';
        
            var cursor:IViewCursor = dataProvider.createCursor ();
            var j:int = 0;
            
            //loop through rows
            while (!cursor.afterLast) {
                var obj:Object = null;
                obj = cursor.current;
                
                //loop through all columns for the row
                for(var k:int = 0; k < columnCount; k++) {
                    column = columns[k];
 
                    //Exclude column data which is invisible (hidden)
                    if(!column.visible) {
                        continue;
                    }
                
                    data += column.itemToLabel(obj);
                    
                    if(k < (columnCount -1)) {
                        data += csvSeparator;
                        trace(data);
                    }
 
                    //generate header of CSV, only if it's not genereted yet
                    if (!headerGenerated) {
                        header += column.headerText;
                        if (k < columnCount - 1) {
                            header += csvSeparator;
                        }
                    }
                }
                
                headerGenerated = true;
 
                if (j < (rowCount - 1)) {
                    data += lineSeparator;
                }
 
                j++;
                cursor.moveNext ();
            }
            
            //set references to null:
            dataProvider = null;
            columns = null;
            column = null;
            str = header + "\r\n" + data;
            return str;
        }

Open in new window

ASKER CERTIFIED SOLUTION
Avatar of zzynx
zzynx
Flag of Belgium image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Thanx 4 axxepting