Aufgabenstellung
Der Inhalt eines mx:DataGrid soll in die Zwischenablage kopiert werden, um ihn z.B. in Excel einzufügen.
Anmerkung: Für AdvancedDataGrid mit Baum siehe auch
Ansatz
Verwendung von System.setClipboard(…); und Iteration über den DataProvider.
Lösung
public function clipData( dg:DataGrid ):void
{
var totalExport:String = new String();
var colList:Array = new Array();
for(var i:int = 0; i < dg.columnCount; i++)
{
colList.push(dg.columns[i].dataField);
totalExport += dg.columns[i].headerText + "\t";
}
totalExport += "\r";
for(var yp:int = 0; yp < dg.dataProvider.length; yp++)
{
for(var xp:int = 0; xp < colList.length; xp++)
{
totalExport += dg.dataProvider[yp][colList[xp]] + "\t";
}
totalExport += "\r";
}
System.setClipboard(totalExport);
Alert.show('Copied to clipboard, you can paste it now to excel...');
}
[/javascript]