我實現了XAF項目中Excel數據的導入,使用Devexpress 新出的spreadsheet控制項,可能也不新了吧:D好,先看一下效果圖:下圖是Web版本的。下麵是win版,目前只支持Ribbon UI,下個版本支持其他界面的:功能說明:支持從Excel任意版本導入數據,可以使用 打開文件功能選擇...
我實現了XAF項目中Excel數據的導入,使用Devexpress 新出的spreadsheet控制項,可能也不新了吧:D
好,先看一下效果圖:下圖是Web版本的。
下麵是win版,目前只支持Ribbon UI,下個版本支持其他界面的:
功能說明:
支持從Excel任意版本導入數據,可以使用 打開文件功能選擇現有的文件,沒有模板時,請來到上圖界面中,另存為Excel到本地,往模板上填加數據。
導入時使用了顯示名稱進行匹配欄位,所以欄位部分不要修改。
導入時會使用你在寫好的驗證規則。
支持Win+Web兩個版本。
使用方法:
第一步:將Admiral.ImportData模塊拖到你的項目的模塊中去,上圖為例,我將把Admiral.ImportData拖到圖中A項目中,即MFBI.Module中去。
第二步:將Admiral.ImportData.Web 拖到B中。
第三步:將Admiral.ImportData.Win拖到C中。
你不知道模塊在哪裡?請看下圖:
先打開solution 中的Module.cs, 然後從toolbox拖動ImportDataModule到Required Modules中。
當然這是把源碼直接放到項目中去的方法,如果想直接使用DLL,可以編譯好後,在toolbox中填加選擇項,選擇路徑後,再進行拖動。
再來看看代碼中的設置:
以下代碼中有兩處標紅的,第一必須實現IImportData介面才可能導入,這個介面是空的,不用實現。DomainComponent也可以這樣使用。
對於普通的欄位,沒有其他設置。
對於引用型欄位,需要[ImportDefaultFilterCriteria("編碼=?")]這樣,來設置將來查找引用類型的值時,用什麼條件進行查找,當然問號會被替換為Excel中真實的值。
[XafDisplayName("銷量明細")] [NavigationItem("銷售模塊")] public class 銷量明細 : BaseObject,IImportData { public 銷量明細(Session s) : base(s) { } private 訂單 _訂單; [Association]
[ImportDefaultFilterCriteria("編碼=?")] public 訂單 訂單 { get { return _訂單; } set { SetPropertyValue("訂單", ref _訂單, value); } } ...... }
當前模塊還比較簡單 ,以後會慢慢完善。
歡迎加入XAF技術交流群討論 XAF技術應用 50185791, QQ:4603528
轉載請註明出處。多謝!