拽 Excel 到 ComponentOne C1FlexGrid
?當我們加載 Excel 文件到 Windows 窗體應用程序時,最常見的方法是使用 Streams 去讀/寫 文件。另一種更好的方法是直接拖拽 Excel 文件到
FlexGrid 上。
這個例子使用 Drag 和 Drop 特性來實現該應用。下面我們分部闡述如何實現:
1.創建用戶自定義控件
在用戶自定義控件中添加 ComponentOne C1FlexGrid,我們使用 ComponentOne??C1Command's MainMenu 和 ComponentOne DockingTab 控件去模擬 Excel 菜單和 Sheets
Tab。使用 Label 和 TextBox 去展示當前選中索引和內容。
UI 布局如截圖:
2.拖拽 Excel 到 C1FlexGrid?
是指 C1FlexGrid.DropMode 為 Manual。添加 C1FlexGrid DragEnter 和 DragDrop 事件。在 DragEnter 事件中更改 光標形狀。我們我需要創建
“file” 變量去存儲添加的文件名稱。
3.現在我們需要在 DragDrop 事件中操作拖拽到 C1FlexGrid 中的 Excel 文件。Drop 事件可以捕捉到文件名和路徑。這時我們可以使用 C1FlexGrid
.LoadExcel 方法去加載 Excel 文件。但是我們需要去檢查拖拽的文件是否為 BIFF8(.XlS) 或者 OpenXML(xlsx)文件。
4.LoadExcelInFiel 方法使用兩個方法:AddTabs() 和 UpdateFields() 。這兩個方法的作用是創建類似于 Excel 的?SpreadSheet 界面。
?
private void AddTabs(){_sheetTabs.TabPages.Clear();string[] sheetnames = _flex.LoadExcelSheetNames(file);foreach (string str in sheetnames){C1DockingTabPage dtpage = new C1DockingTabPage();dtpage.Name = str;dtpage.Text = str;_sheetTabs.TabPages.Add(dtpage);}_sheetTabs.SelectedIndex = 0;}//Method to update the fields in the UIprivate void UpdateFields(){SetRowColNames();int selcol = _flex.Col;int selrow = _flex.Row;label1.Text = _flex.GetDataDisplay(0, selcol) + selrow.ToString();try { textBox1.Text = _flex.GetDataDisplay(selrow, selcol); }catch(Exception ex) { System.Diagnostics.Debug.WriteLine(ex.Message);}}?
Demo 下載
很高興能和大家分享 ComponentOne 的使用方法、討論 ComponentOne 使用過程中遇到的問題。
葡萄城控件產品網站:http://www.gcpowertools.com.cn/?
葡萄城技術支持論壇:http://gcdn.grapecity.com/
?
轉載于:https://blog.51cto.com/c1supportteam/937019
總結
以上是生活随笔為你收集整理的拽 Excel 到 ComponentOne C1FlexGrid的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 运用shell,python自动下载li
- 下一篇: looper message handl