试用过Google Spreadsheets的朋友,可能发现其一个有意思的特性,我们可以直接将Excel中的多行数据直接复制插入到Google Spreadsheets中(OpenOffice也可以直接复制过去),没尝试过的朋友可以马上按如下步骤测试下: 在Excel(或OpenOffice Calc)中选择多行数据,敲Ctrl+C键,复制选择的多行数据: 然后到Google Spreadsheets,敲Ctrl+V键,前面复制的单元格就被复制过来了: 这是如何做到的呢?其实很简单,在Excel(OpenOffice Calc)中,当多个单元格被复制时,这些单元格的数据是以tab键分隔一行行数据(tab-separated values (TSV))存放在剪贴板中的,当这些数据被粘贴到Google Spreadsheets中时,这些TSV格式的数据被解析并被相应插入到Google Spreadssheets中了。 既然知道其中的奥妙,那么剩下的就是在Flex中实现同样的效果了。以下是我们的实现思路,可以在Excel和Flex相互直接复制粘贴数据。 我们的思路的精妙所在是隐藏文本(TextField)组件的使用: 在DataGrid中,当按下Ctrl键时,我们创建一个隐藏的文本(TextField)组件,并将焦点定位给它,这样,我们就可以接受任何通过Ctrl+V粘贴过来的数据。相应的我们也将DataGrid选择行数据以TSV格式拷贝到TextField组件中,并且将所有的文本选择,这样我们使用Ctrl+C操作就可以复制当前行所有数据了。 监听隐藏文件组件的textInput事件。如果有任何数据被粘贴的话,那么在这里数据将被解析,并插入到DataGrid中。 当Ctrl键释放后,移除隐藏的文本组件。 以下是完整实现示例代码:
posted on 2010-10-25 09:56 aiaiwoo 阅读(396) 评论(0) 编辑 收藏 所属分类: AC3/FLEX
Powered by: BlogJava Copyright © aiaiwoo