在excel與flex之間貼上資料
試用過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鍵釋放後,移除隱藏的文字元件。
以下是完整實現示例**:
<?xml version="1.0"?>
import flash.events.keyboardevent;
private function datagridkeydownhandler(event:keyboardevent):void
}private function datagridkeyuphandler(event:keyboardevent):void
}private function clipboardproxypastehandler(event:textevent):void
private function getitemsfromtext(text:string):array
;for (var i:int = 0; i < n; i++)
item[columns[i].datafield] = fields[i];
itemsfromtext.push(item);
}return itemsfromtext;
}private function gettextfromitems(items:array):string
return textfromitems;
}]]>
flex資訊與webservices之間怎麼互動
flex中有個的標籤能夠負責flex與webservices之間互動 引數名1 值1 引數名2 值2 元件表示webservice的乙個方法,屬性name值必須與webservice中的定義名稱相同 標籤下傳遞引數,需要注意的是引數的名稱及順序必須與webservice中的定義相同。以下 定義了乙個...
vim與系統貼上板之間
根據平台不同,要分兩種情況。先用下面命令確定你屬於哪一種,vim version grep clipboard情況一,如果結果裡你找到加號開頭的 clipboard,恭喜你,你的vim沒問題,是你姿勢問題。d,x,c,s也一樣,用之前前面加 如果想偷懶用y直接把內容複製到系統剪貼簿,需要到vim配置...
Excel對於篩選後單元格進行「複製」與「貼上」
複製 很簡單,有的說需要選中區域,然後選擇 可見單元格 ctrl c ctrl v,這當然可以,也可用快捷鍵 ctrl 進行可見單元格選擇。其實新版本直接ctrl c ctrl v就ok。貼上 這是一大難點,也是我寫這篇的原因方便自己以後翻閱。1,網上看到乙個excel外掛程式,貼上的時候可以選擇 ...