VB.NET中:将EXCEL文件作为数据源在DataGridView控件中显示的方法
| 分类: VB.NET编程 |
DataGridView是先前版本DataGrid控件的升级网格控件,作为新一代基于Windows Froms 2.0的新网格控件。它具有易于使用并高度可定制,提供了许多新的功能。
使用DataGridView 控件,可以显示和编辑来自多种不同类型的数据源的表格数据。将数据绑定到DataGridView 控件非常简单和直观,在大多数情况下,只需设置 DataSource 属性即可。在绑定到包含多个列表或表的数据源时,只需将DataMember 属性设置为指定要绑定的列表或表的字符串即可。
本文着重介绍,如何使用DataGridView来显示Excel中的指定的数据表内容。而如何进行其它包括编辑、添加、删除等操作,完全类似对数据库的操作,本文就不一一赘述。
微软的工程师,为程序员提供了这样一条途径,通过VBA来实现把EXCEL里的数据读取出来,这样一来,就可以实现把这些数据,显示在DataGridView控件里。但是,有这样经历的人都知道,这种方法的速度比较慢,本文介绍微软的工程师,提供的另一条途径,就是把Excel作为数据源,绑定到DataGridView控件,这就如同大家熟知的把数据库ACCESS、SQL SERVER等作为数据源一样。
把Excel作为数据源,绑定到DataGridView控件,与把数据库ACCESS、SQL SERVER等作为数据源的方法非常相似,但是又稍有不同,归纳起来步骤如下:
方法与步骤如下:(不同的Office版本,菜单还不相同)
1.在Excel 2003及以前版本的文件中定义“名称”的操作:
打开欲作为数据源的Excel文件(里面当然包含了数据),选中作为数据源的数据的矩形区域(包括表的第一行字段名),使用菜单[插入]|[名称]|[定义],出现“定义名称”对话窗口,在“在当前工作簿中的名称”文本框里输入一个名称,这里假设就叫“ABCD”,单击[确定],返回到EXCEL,完成了名称的定义。保存Excel文件,关闭退出Excel。
2.在Excel 2010版本的文件中定义“名称”的操作:
打开欲作为数据源的Excel文件(里面当然包含了数据),选中作为数据源的数据的矩形区域(包括表的第一行字段名),使用菜单[公式]|[名称管理器],出现“名称管理器”对话窗口,单击[新建],出现“新建名称”对话窗口,在“名称”文本框里输入一个名称,这里假设就叫“我的名称A”,在“范围”文本框里默认的是“工作簿”,不要修改它,单击[确定],返回到“名称管理器”对话窗口,单击[关闭,返回到]EXCEL,完成了名称的定义。保存Excel文件,关闭退出Excel。
二.在VB.NET中使用方法:(定义连接字符串)
我们知道:连接ACCESS文件的字符串的格式如下;
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=盘符路径Access文件名"
注意:其中盘符路径Access文件名的确具体内容可以是;C:\MySamp.mdb
微软规定了使用EXCEL作为数据源的连接字符串格式,并且不同的Office版本以及文件,连接字符串也略有不同,可以访问网站:http://www.connectionstrings.com/ace-oledb-12-0/,寻找相应的连接字符串格式。
1.对于Excel 97--2003:
"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=c:\myFolder\myOldExcelFile.xls;Extended Properties='Excel 8.0;HDR=YES';"
注意:1) 这里的"c:\myFolder\myOldExcelFile.xls;"是假设的文件名与路径。2)这里的HDR=YES,表示EXCEL作为数据源的矩形区域的第一行是字段名;反之用HDR=NO表示EXCEL作为数据源的矩形区域的第一行不是字段名,而是数据。
2.对于Excel 2007—2010的Xlsx文件(注意Xlsb以及Xlsm稍有不同):
"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=c:\myFolder\myExcel2007file.xlsx;Extended Properties='Excel 12.0 Xml;HDR=YES';"
注意:1)这里的" c:\myFolder\myExcel2007file.xlsx;"是假设的文件名与路径。2)这里的HDR=YES,表示EXCEL作为数据源的矩形区域的第一行是字段名;反之用HDR=NO表示EXCEL作为数据源的矩形区域的第一行不是字段名,而是数据。
三.一个通过VB 2010的例子:
1.在EXCEL里定义名称“名称A”,见下图:
2.启动VB 2010,创建Windows 窗体项目。在窗体上添加一个DataGridView控件。进入代码窗口,编写代码如下:
Imports
Public
End
3.运行项目,看到的效果如下:
参考:Visual Basic 2005
编程技巧大全
中国水利水电出版社
罗斌
等等
2014年3月12日

加载中…