拽 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相关推荐
- 如何批量合并Excel文件和工作表 - Excel合并器使用教程
Excel是人们用于创建日常工作表和统计信息的最流行的工具,在我们工作中经常接触到Excel的XLSX和XLS格式文件.不少朋友应该有时会发现,管理太多的Excel工作表和文件是一件头疼的事情,经常需 ...
- 软工实践原型设计——PaperRepositories
软工实践原型设计--PaperRepositories 写在前面 本次作业链接 队友(031602237吴杰婷)博客链接 pdf文件地址 原型设计地址(加载有点慢...) 结对成员:031602237 ...
- Kettle实例解析
参考自 李蒙强 的博客:<ETL利器Kettle实战应用解析系列二> 重新操作.改造.配图 首先建表并插入数据 三张事实表 drop table aa_cust; create table ...
- UiPath之邮件发送
该项目最后结果为发送给指定邮箱邮件,带有表格附件,主题,正文(文字.图片.表格) 在建立序列之前,先做一些准备工作. 以qq邮箱为例,开启SMTP服务,同时获取授权码. 登录QQ邮箱--->点击 ...
- BI分析功能详解:Smartbi自助数据准备
Smartbi自助数据准备功能简介 之前我们在<通过数据导航实现企业的数据资源到我的数据资源>一文中讲过通过数据导航可以实现企业的数据资源到我的数据资源,通过开放的企业数据资源目录,个人 ...
- origin软件操作1:有关列属性的设置
添加列:在空白处单击右键-->添加新列:或直接选中一列,右键-->插入(在该列的前面插入一列). 移动列:选中一列-->单击右键-->移动列. 设置列绘图属性:点击列名称选中整 ...
- Excel表格快速复制公式到最后一行,无需拖拽!
工欲善其事,必先利其器!掌握一些Excel表格的操作技巧,很多时候会极大地减轻工作量. 如下图所示,现在在第1行.第E列,输入了一个求和公式(用于计算整行数据的加和). 选中E1单元格后,将鼠标光标移 ...
- EXCEL类十字拖拽操作上千条数据的技巧
使用场景: 今天遇到要给一个文件夹几千张图片写个list,形如:.\sample\6\00001.jpg,末尾序号一直延伸到几千. 本来可以直接在第一行写下.\sample\6\00001.jpg,然 ...
- excel怎么把竖排变成横排_excel:斜线表头的制作方法,并且拖拽也不变形,值得收藏...
我们是Excel技术控,大家看完文章喜欢的话,可以关注下.谢谢支持. 在excel的使用过程中,经常要制作单斜线表头,双斜线表头,以及多斜线表头,实际都不难.一个痛点是,斜线表头的在拖拽,也就是列宽变 ...
最新文章
- python中常见的流程结构-Python分支结构(switch)操作简介
- 大二暑假周进度报告(三)
- JavaScript库开发者们的规则
- 一行命令搞定node.js 版本安装、升级与卸载
- 手把手教你如何优化C语言程序
- Linux grep命令、Linux cd命令、Linux pwd命令
- php:修改目录下文档权限(777,644 )
- java jpeg压缩算法_在创建JPEG时,我可以更改Java的ImageWriter使用的压缩算法吗?
- 在字符串中查找id值MySQL
- Go:一次 exit code 是 137 且 无 coredump 的排错经历
- Arduino Uno + PAJ7620U2 实现手势识别控制LED灯工作
- Windows 7 安装软件错误:“Error 1935 ...HRESULT: 0x800736FD” 的解决办法
- 核酸检测预约和结果查询系统
- 在网页上播放本地视频
- 物品冷启动问题解决办法
- RFID固定资产管理系统之茶叶产品资产管理,智能监控防盗管理
- burpsuite破解webshell密码+国内黑阔shell密码收集
- androidx使用Toolbar
- 美国大学生数学建模竞赛选题、经验以及准备材料
- [小黄书管理平台]Angularjs 2.0应用的国际化
热门文章
- 计算机视觉与深度学习 | 视觉里程计库Libviso2详解
- maven pom java版本_Maven更新POM中的JDK版本(比如更新为JDK1.8)
- python 单线程_python的单线程多任务的实现
- Java基础day11
- 【机器学习】为什么GBDT可以超越深度学习
- 【论文解读】A Survey on Visual Transformer及引文理解
- 【Python基础】关于日期特征,你想知道操作都在这儿~
- 【Python基础】盘点 Python 10 大常用数据结构(上篇)
- 【科普】不同行业的常见数据分析的指标是什么?
- 原文翻译:关于机器学习,我们忽视的东西