日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

拽 Excel 到 ComponentOne C1FlexGrid

發布時間:2025/1/21 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 拽 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” 變量去存儲添加的文件名稱。

string file;private void _flex_DragEnter(object sender, DragEventArgs e){if (e.Data.GetDataPresent(DataFormats.FileDrop, false) == true)e.Effect = DragDropEffects.Move;elsee.Effect = DragDropEffects.None;}

3.現在我們需要在 DragDrop 事件中操作拖拽到 C1FlexGrid 中的 Excel 文件。Drop 事件可以捕捉到文件名和路徑。這時我們可以使用 C1FlexGrid
.LoadExcel 方法去加載 Excel 文件。但是我們需要去檢查拖拽的文件是否為 BIFF8(.XlS) 或者 OpenXML(xlsx)文件。

private void _flex_DragDrop(object sender, DragEventArgs e){file = string.Empty;string[] str = (string[])e.Data.GetData(DataFormats.FileDrop);foreach (string s in str)file += s;LoadExcelInFlex();}private void LoadExcelInFlex(){if ((file.EndsWith(".xls")) || (file.EndsWith(".xlsx"))){_flex.DataSource = null;_flex.LoadExcel(file);AddTabs();UpdateFields();}else{MessageBox.Show("Please select an Excel file");}}

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的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。