C#Winform导入Excel数据到datagridview控件

#此次导入Excel数据借助了ExcelDataReader插件。(由于我需要的是打开工作簿时能够选择工作表绑定于datagridview控件,通过网上资源的浏览与借鉴,ExcelDataReader能满足我的需求。)

一、插件安装

(1)安装ExcelDataReader插件(如图)

(2)查看是否安装成功(如图表明已安装成功)

二、代码编写

(1)为了方便使用,打开文件的过程构造为一个方法

     DataTableCollection tableCollection;public void OpenFile(){OpenFileDialog file = new OpenFileDialog();file.Filter = "Excel(*.xlsx)|*.xlsx|Excel(*.xls)|*.xls";if (file.ShowDialog() == DialogResult.OK){txtFileName.Text = file.FileName;//对话框中选择的文件名//1:打开文件,得到文件流stream FileStream stream = File.Open(file.FileName, FileMode.Open, FileAccess.Read);//FileStream:用于文件中任何位置的读写。var sw = new Stopwatch();//定时器sw.Start();//2:得到文件readervar reader = ExcelReaderFactory.CreateReader(stream);//3:通过reader得到数据var result = reader.AsDataSet(new ExcelDataSetConfiguration(){ConfigureDataTable = (tableReader) => new ExcelDataTableConfiguration(){//标题行的内容是否显示UseHeaderRow = true}});var openTiming = sw.ElapsedMilliseconds;toolStripStatusLabel1.Text = "Elapsed: " + sw.ElapsedMilliseconds.ToString() + " ms (" + openTiming.ToString() + " ms to open)";//4:得到ExcelFile文件的表SheettableCollection = result.Tables;cboSheet.Items.Clear();foreach (DataTable item in tableCollection){cboSheet.Items.Add(item.TableName);Console.WriteLine(item.TableName);}}}

(2)效果展示(图上为控件name)

(3)数据绑定方法

     public static void BindDataGridView(DataTable dt, DataGridView dgv){/*dgv.ClearSelection();//不像用户显示添加行dgv.AllowUserToAddRows = false;dgv.DataSource = null;*///DataTable存储数据dgv.DataSource = dt;}

(4)选择工作表,绑定相应数据

         private void dgv_CellContentClick(){//datagridview组件的颜色dgvData.RowsDefaultCellStyle.BackColor = Color.White;Console.WriteLine(cboSheet.SelectedItem.ToString());var dt = tableCollection[cboSheet.SelectedItem.ToString()];BindDataGridViewFillShow(dt, dgvData);dgvData.DataSource = dt;// DataGridView取消选中第一行第一列方法(绑定数据源后)dgvData.Rows[0].Cells[0].Selected = false;dgvData.Rows[0].Selected = false;}

(5)在相应控件调用方法即可

     private void btnFilenpath_Click(object sender, EventArgs e){OpenFile();}private void cboSheet_SelectedIndexChanged(object sender, EventArgs e){dgv_CellContentClick();}

这就完成将Excel数据导入到Excel的过程啦!

这是通过自己需求从网络上学习、借鉴从而实现的,给有需要的朋友参考参考。如有侵权,请务必联系我删除,谢谢!
也希望能给大家有所帮助!!!

(一)C#Winform导入Excel数据到datagridview控件相关推荐

  1. excel数据输入窗体控件_工作表数据输入或Excel用户窗体

    excel数据输入窗体控件 If you're building an Excel workbook, in which users with basic Excel skills will ente ...

  2. .Net C# 如何读取Excel数据内容写入数据库并通过DataGridView控件动态刷新显示

    目录 介绍 选择Excel文件并读取内容 将数据内容写到数据库 更新dataGridView内容 介绍 本篇文章主要介绍C# winForm窗体如何打开Excel文件读取其中的内容,并将其内容写到数据 ...

  3. python绘制动态图表怎么存下来_用python如何实现导入excel数据后自动生成图表?python如何实现交互式动态图表?...

    这个需求涉及的环节太多了.导入excel文件,获取数据 -- 需要xlrd模块把数据导入python 2. 设定输出图表类型 -- 需要matplot模块.根据数据复杂度,可能需要ETL,那么需要pa ...

  4. python导入excel数据-如何把python中的数据导入excel

    python将数据导入excel的方法:1.在python官网下载xlrd第三方库:2.利用xlrd中的open_workbook函数读入excel文件,即可在python中导入excel数据. 一. ...

  5. oracle 导入Excel数据

    oracle 导入excel数据 CreateTime--2018年1月30日14:58:51 Author:Marydon 通过plsql实现 1.准备工作 Excel中的字段名称,必须和表结构字段 ...

  6. php 导入表格数据,PHPExcel 导入Excel数据的方法

    这篇文章主要介绍了关于PHPExcel 导入Excel数据的方法,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 一:使用composer下载 phpoffice/phpexcel 或者 ...

  7. arcgis导入excel数据_导入Excel数据到ArcGIS属性表的两种实用方法

    导入Excel数据到ArcGIS有两种方法,一种是用ArcMap的加载数据(黄色+号那个):另一种是用ArcCatalog直接转为shp文件,两种方法的原理是一样的. 第一种方法 1.Excel数据: ...

  8. C# 导入excel数据,解决关闭excel后不能释放资源的问题

    C# 导入excel数据,解决关闭excel后不能释放资源的问题 参考文章: (1)C# 导入excel数据,解决关闭excel后不能释放资源的问题 (2)https://www.cnblogs.co ...

  9. 使用SQLyog导入EXCEL数据和合并数据表

    使用SQLyog导入Excel数据 选择 ``高级工具`` >``导入外部数据`` ,选择``开始新工作``,点击``下一步``,如下图所示. 选择数据源类型为excel,在File name中 ...

最新文章

  1. TypeKit ,use online fonts
  2. Ubuntu 下编译ffmpeg和x264解编码器(翻译的一篇文章:)
  3. 数据恢复 从binlog文件
  4. printf输出颜色和ANSI控制码(高亮,下划线,闪烁,光标位置,清屏等)
  5. mysql双主双从_mysql双主双从
  6. mysql数据库 day04
  7. 我是一个请求,我是如何被发送的?
  8. JS隐形数据类型转换注意事项
  9. VBOX+WINDOWSSERVER208R2实现虚拟机内FTP服务器搭建
  10. 某P2P开发商ERP系统核心业务介绍
  11. VMware虚拟机复制文件卡死的问题
  12. SlicePlane的Heading角度与Math.atan2(y,x)的对应转换关系
  13. 博客赚钱也疯狂--个人博客如何赚钱
  14. 2022最新软件测试面试题(附答案)来测试下你的水平
  15. 严格校验身份证,最后一位如果是X 需大写
  16. html/template 和 text/template区别
  17. ISO 26262系列文章之————5 硬件开发
  18. (修改gho文件办法)做属于自己个性的gho系统
  19. OOV问题-论文笔记《Neural Machine Translation of Rare Words with Subwords Units》- ACL2016
  20. 当前流行搜索引擎爬虫IP列表

热门文章

  1. 疫情严重,推迟开学,在家如何高效学习
  2. C#中错误:线程间操作无效,从不是创建控件的线程访问它。
  3. 《C》C语言编程实现任意阶数的“m序列”并通过gnuplot绘图——在知道本原多项式的前提下
  4. mysql 毫秒转换为天时分秒
  5. 国家网信办:拟建立数据分类分级保护制度
  6. 私有ip地址是怎么分配的?
  7. 宝宝与父母间的纽带——毛绒玩具
  8. 《Angular4从入门到实战》学习笔记(图文)
  9. js中True、False如何判断
  10. MySQL多表联合查询