Flex 带导入导出Excel的DataGrid

xiaoxiao2026-03-19  6

原文网址:http://nlslzf.iteye.com/blog/228038 package  com.yyhy.flex.util   {       import  flash.events.KeyboardEvent;       import  flash.events.TextEvent;       import  flash.text.TextField;       import  flash.text.TextFieldType;              import  mx.controls.*;       import  mx.controls.dataGridClasses.DataGridColumn;       //import mx.events.        public   class  EIDataGrid  extends  DataGrid       {           public  function EIDataGrid()           {               super ();               this .addEventListener(KeyboardEvent.KEY_DOWN,KeyDownHandler);               this .addEventListener(KeyboardEvent.KEY_UP,KeyUpHandler);           }           private  function KeyDownHandler(event:KeyboardEvent): void                {                   if  (event.ctrlKey && ! this .getChildByName( "clipboardProxy" ))                   {                       // Add an invisible TextField object to the DataGrid                        var textField:TextField = new  TextField();                       textField.name = "clipboardProxy" ;                       this .addChild(textField);                       textField.visible = false ;                              textField.type = TextFieldType.INPUT;                       textField.multiline = true ;                              // Populate the TextField with selected data in TSV format                               textField.text = getTextFromItems(this .selectedItems);                       //textField.text = getTextFromItems(dataGrid.dataProvider.source);                        textField.setSelection(0 , textField.text.length -  1 );                              // Listen for textInput event                               textField.addEventListener(TextEvent.TEXT_INPUT,                       clipboardProxyPasteHandler);                              // Set player-level focus to the TextField                               systemManager.stage.focus = textField;                   }//end if                }//end function                      private  function KeyUpHandler(event:KeyboardEvent): void                {                   if  (!event.ctrlKey)                   {                       var textField:TextField = TextField(this .getChildByName( "clipboardProxy" ));                       if  (textField)                       {                           this .removeChild(textField);                       }//end if                    }//end if                }//end function                   private  function clipboardProxyPasteHandler(event:TextEvent): void                {                   // Extract values from TSV format and populate the DataGrid                           var items:Array = getItemsFromText(event.text);                   for  each (var item:Object in items)                       this .dataProvider.addItem(item);               }//end function                   private  function getItemsFromText(text:String):Array               {                   var rows:Array = text.split("\n" );                   if  (!rows[rows.length -  1 ])                       rows.pop();                          var columns:Array = this .columns;                   var itemsFromText:Array = [];                          for  each (var rw:String in rows)                   {                       var fields:Array = rw.split("\t" );                              var n:int  = Math.min(columns.length, fields.length);                       var item:Object = {};                       for  (var i: int  =  0 ; i < n; i++)                           item[columns[i].dataField] = fields[i];                       itemsFromText.push(item);                    }                          return  itemsFromText;                 }//end function            private  function getTextFromItems(items:Array):String               {                   var columns:Array = this .columns;                   var textFromItems:String = "" ;                   //add datagrid headtext                     for  each (var i: DataGridColumn in columns)                   {                       textFromItems += i.headerText + "\t" ;                   }                   textFromItems += "\n" ;                                          for  each (var it:Object in items)                   {                                              for  each (var c: DataGridColumn in columns)                           textFromItems += it[c.dataField] + "\t" ;                       textFromItems += "\n" ;                   }                          return  textFromItems;               }//end function        }   }  相关资源:敏捷开发V1.0.pptx
转载请注明原文地址: https://www.6miu.com/read-5046197.html

最新回复(0)