喜欢的人QQ昵称是二七.是什么你见过最有意思的昵称

Excel VBA中ADO记录集使用-1
Excel.VBA_使用ADO访问数据库_计算机软件及应用_IT/计算机_专业资料。使用 ADO ...(2) 使用 Recordset 对象的打开记录集方法获得记录集对象(也可使用 Command ...
Excel VBA_ADO+SQL实例集锦_计算机软件及应用_IT/计算机_专业资料。1, 包含空...'可不用每次关闭数据源的连接 3,用记录集执行单个查询 Option Explicit Sub My...
Excel VBA中ADO记录集使用... 5页 免费 在EXCEL中使用VBA编程处理... 4页 ...例如: strQuery = &SELECT * FROM [Sheet1$A1:B10]& 3.使用 ADO 方法...
Excel VBA_ADO+SQL实例集锦_计算机软件及应用_IT/计算机_专业资料。1, 包含空...'可不用每次关闭数据源的连接 3,用记录集执行单个查询 Option Explicit Sub My...
Excel VBA利用ADODB访问数据库使用总结_计算机软件及应用_IT/计算机_专业资料。...▲记录集结果的引用 Excel VBA 通过 ADO 取到数据后,有如下引用方式(假定记录...
Excel VBA 学习总结 - 通用 ADO 数据访问模型 ADO...(返回数据的类型) 常用方法:Open,Close,Move,...LockType = adLockBatchOptimistic ' 5) 打开记录集....
第12 课 ADO 在 EXCEL 中应用基础(QEE 用) 一...(记录) 对象表示 Recordset (记录集)对象中的一条...创建 ADO 对象方法 1:使用 VBA 的 CreateObject ...
如何在 Visual Basic 或 VBA 中使用 ADO 来处理 Excel 数据_专业资料。比较详细如何在 Visual Basic 或 VBA 中使用 ADO 来处理 Excel 数据 http://support.mic...
Excel VBA编程 典型实例――读取ACCESS数据_其它技巧_PPT制作技巧_实用文档。Excel...例如,通过 ADO 读取 ACCESS 中的数Excel VBA 编程 典型实例――读取 ACCESS ...
Excel_VBA与数据库(Access)或SQL操作_计算机软件及应用_IT/计算机_专业资料。...请先添加 ADO 引用 'Dim rs As New ADODB.Recordset '定义记录集对象,保存...君,已阅读到文档的结尾了呢~~
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
如何在 Visual Basic 或 VBA 中使用 ADO 来处理 Excel 数据
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer-.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口如何在_Visual_Basic_或_VBA_中使用_ADO_来处理_Excel_数据_图文_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
如何在_Visual_Basic_或_VBA_中使用_ADO_来处理_Excel_数据
上传于|0|0|暂无简介
阅读已结束,如果下载本文需要使用0下载券
想免费下载更多文档?
定制HR最喜欢的简历
下载文档到电脑,查找使用更方便
还剩10页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢ado.net 如何读取 excel【asp.net吧】_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:37,413贴子:
ado.net 如何读取 excel收藏
经常需要在数据库与Execl之间互导数据。net时代,ADO.NET可以使用使用Microsoft.Jet.OleDb访问访问Excel,网上已经有很多类似的资源,最典型也是最简单的可能如下:(asp.net环境)
&//&连接字符串&&&&&&&&&&&&
&&&&&&&&string&xlsPath&=&Server.MapPath(&~/app_data/somefile.xls&);&//&绝对物理路径
&&&&&&&&string&connStr&=&&Provider=Microsoft.Jet.OLEDB.4.0;&&+
&&&&&&&&&&&&&&&&&&&&&&&&&Extended&Properties=Excel&8.0;&&+&
&&&&&&&&&&&&&&&&&&&&&&&&&data&source=&&+&xlsP
&&&&&&&&//&查询语句
&&&&&&&&string&sql&=&&SELECT&*&FROM&[Sheet1$]&;
&&&&&&&&DataSet&ds&=&new&DataSet();
&&&&&&&&OleDbDataAdapter&da&=&new&OleDbDataAdapter(sql,&connStr);
&&&&&&&&da.Fill(ds);&&&&//&填充DataSet&&&&&&&&
&&&&&&&&
&&&&&&&&//&在这里对DataSet中的数据进行操作&&&&&&&&
&&&&&&&&//&输出,绑定数据
&&&&&&&&GridView1.DataSource&=&ds.Tables[0];&
&&&&&&&&GridView1.DataBind();
很简单吧?!一切就像操作数据库一样,只是需要注意的是:
1。数据提供程序使用Jet,同时需要指定Extended&Properties&关键字设置&Excel&特定的属性,不同版本的Excel对应不同的属性值:用于&Extended&Properties&值的有效&Excel&版本。&
对于&Microsoft&Excel&8.0&(97)、9.0&(2000)&和&10.0&(2002)&工作簿,请使用&Excel&8.0。&
对于&Microsoft&Excel&5.0&和&7.0&(95)&工作簿,请使用&Excel&5.0。&
对于&Microsoft&Excel&4.0&工作簿,请使用&Excel&4.0。&
对于&Microsoft&Excel&3.0&工作簿,请使用&Excel&3.0。&
2。数据源路径使用物理绝对路径(同Access)
3。如何引用表名?
对&Excel&工作簿中表(或范围)的有效引用。&
若要引用完全使用的工作表的范围,请指定后面跟有美元符号的工作表名称。例如:&
select&*&from&[Sheet1$]
若要引用工作表上的特定地址范围,请指定后面跟有美元符号和该范围的工作表名称。例如:&
select&*&from&[Sheet1$A1:B10]
若要引用指定的范围,请使用该范围的名称。例如:&
select&*&from&[MyNamedRange]
ref:
说明:
可以引用Excel&工作簿中的三种对象:
•&整张工作表:[Sheet1$]&&,Sheet1&就是工作表的名称
•&工作表上的命名单元格区域:[MyNamedRange]&(不需要指定工作表,因为整个xls中命名区域只能唯一)
XLS命名方法:选中单元格范围》插入》名称》定义
•&工作表上的未命名单元格区域&:[Sheet1$A1:B10]
(在关系数据库提供的各种对象中(表、视图、存储过程等),Excel&数据源仅提供相当于表的对象,它由指定工作簿中的工作表和定义的命名区域组成。命名区域被视为“表”,而工作表被视为“系统表”)
注意:
•必须使用[](方括号),否将报:
FROM&子句语法错误
•必须跟$(美元符号),否则报:
Microsoft&JetJets-of-the-Future&Sep-07&&数据库引擎找不到对象'Sheet2'。请确定对象是否存在,并正确地写出它的名称和路径。
•如果工作表名称不对,或者不存在,将报:
'Sheet2$'&不是一个有效名称。请确认它不包含无效的字符或标点,且名称不太长。
•在&如何在&Visual&Basic&或&VBA&中使用&ADO&来处理&Excel&数据&&&中提到可以使用
~&&和&'(波浪线和单引号)代替[],使用ADO。NET测试没有成功,报:
FROM&子句语法错误
•当引用工作表明名([Sheet1$])时,数据提供程序认为数据表从指定工作表上最左上方的非空单元格开始。比如,工作表从第&3&行,C&列开始,第3行,C列之前以及第1、2行全为空,则只会显示从第3行,C列开始的数据;以最后表最大范围内的非空单元结束;
•因此,如需要精确读取范围,应该使用命名区域&[NamedRange],或者指定地址:[Sheet1$A1:C10]
4。如何引用列名?
•根据默认连接字符串中,数据提供程序会将有效区域内的第一行作为列名,如果此行某单元格为空则用F1、F2表示,其中序数,跟单元格的位置一致,从1开始;
•如果希望第一行作为数据显示,而非列名,可以在连接串的&Extended&Properties&属性指定:HDR=NO
默认值为:HDR=NO&格式如下:
&&&&&&&&string&connStr&=&&Provider=Microsoft.Jet.OLEDB.4.0;&&+
&&&&&&&&&&&&&&&&&&&&&&&&&Extended&Properties=\&Excel&8.0;HDR=NO\&;&&+&
&&&&&&&&&&&&&&&&&&&&&&&&&data&source=&&+&xlsP
注意:&Excel&8.0;HDR=NO&&需要使用双引号(这里的反斜扛,是C#中的转义)
ref:ms-help://MS.VSCC.v80/MS.MSDN.v80/MS.VisualStudio.v80.chs/WD_ADONET/html/745c5f95-2f02-d51a7ec2490.htm&中&《连接Excel》节(说明:在我自己的MSDN中,它的例子使用了两个双引号是错的,测试没有通过,原文这样说的:
注意,Extended&Properties&所需的双引号必须还要加双引号。

在这种情况下,所有的列名都是以F开头,然后跟索引,从F1开始,F2,F3。。。。。。。
5。为什么有效单元格数据不显示出来?
出现这种情况的可能原因是,默认连接中,数据提供程序根据前面单元格推断后续单元个的数据类型。
可以通过&Extended&Properties&中指定&IMEX=1&
“IMEX=1;”通知驱动程序始终将“互混”数据列作为文本读取
ref:同4
PS:在baidu这个问题的时候,有网友说,将每个单元都加上引号,这固然是格方案,但是工作量何其大啊,又不零活,庆幸自己找到”治本药方“
&
more&ref:
如何在&Visual&Basic&或&VBA&中使用&ADO&来处理&Excel&数据
应用程序经常需要与Excel进行数据交互,以上阐述了基于ADO.NET&读取Excel的基本方法与技巧。现在要介绍是如何动态的读取Excel数据,这里的动态指的是事先不知道Excel文件的是什么样的结构,或者无法预测,比如一张.xls文件有多少张sheet,而且每张sheet的结构可能都不一样等等。
其实我们可以通过获取Excel的“架构信息”来动态的构造查询语句。这里的“架构信息”与数据库领域的“数据库架构信息”意义相同(也称“元数据”),对于整个数据库,这些“元数据”通常包括数据库或可通过数据库中的数据源、表和视图得到的目录以及所存在的约束等;而对于数据库中的表,架构信息包括主键、列和自动编号字段等。
在上文中提到
在关系数据库提供的各种对象中(表、视图、存储过程等),Excel&数据源仅提供相当于表的对象,它由指定工作簿中的工作表和定义的命名区域组成。命名区域被视为“表”,而工作表被视为“系统表”)
这里我们将Excel也当作一个“数据库”来对待,然后利用OleDbConnection.GetOleDbSchemaTable&方法
要获取所需的架构信息,该方法获取的架构信息与ANSI&SQl-92是兼容的:
注意:对于那些不熟悉&OLE&DB&架构行集的人而言,它们基本上是由&ANSI&SQL-92&定义的数据库构造的标准化架构。每个架构行集具有为指定构造提供定义元数据的一组列(称作&.NET&文档中的“限制列”)。这样,如果请求架构信息(例如,列的架构信息或排序规则的架构信息),则您会明确知道可以得到哪种类型的数据。如果希望了解更多信息,请访问&Appendix&B:Schema&Rowsets。
ref:
以下是读取Excel文件内“表”定义元数据,并显示出来的的程序片断:&
&&&&&&&&//&读取Excel数据,填充DataSet
&&&&&&&&//&连接字符串&&&&&&&&&&&&
&&&&&&&&string&xlsPath&=&Server.MapPath(&~/app_data/somefile.xls&);
&&&&&&&&string&connStr&=&&Provider=Microsoft.Jet.OLEDB.4.0;&&+
&&&&&&&&&&&&&&&&&&&&&&&&&Extended&Properties=\&Excel&8.0;HDR=No;IMEX=1\&;&&+&//&指定扩展属性为&Microsoft&Excel&8.0&(97)&9.0&(&(2002),并且第一行作为数据返回,且以文本方式读取
&&&&&&&&&&&&&&&&&&&&&&&&&data&source=&&+&xlsP
&&&&&&&&string&sql_F&=&&SELECT&*&FROM&[{0}]&;
&&&&&&&&OleDbConnection&conn&=&
&&&&&&&&OleDbDataAdapter&da&=&
&&&&&&&&DataTable&tblSchema&=&
&&&&&&&&IList&string&&tblNames&=&
&&&&&&&&//&初始化连接,并打开
&&&&&&&&conn&=&new&OleDbConnection(connStr);
&&&&&&&&conn.Open();
&&&&&&&&//&获取数据源的表定义元数据&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&//tblSchema&=&conn.GetSchema(&Tables&);
&&&&&&&&tblSchema&=&conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables,&new&object[]&{&null,&null,&null,&&TABLE&&});
&&&&&&&&GridView1.DataSource&=&tblS
&&&&&&&&GridView1.DataBind();
&&&&&&&&//&关闭连接
&&&&&&&&conn.Close();
GetOleDbSchemaTable&方法的详细说明可以参考:
接着是一段利用“架构信息”动态读取Excel内部定义的表单或者命名区域的程序片断:
&&&&&&&&//&读取Excel数据,填充DataSet
&&&&&&&&//&连接字符串&&&&&&&&&&&&
&&&&&&&&string&xlsPath&=&Server.MapPath(&~/app_data/somefile.xls&);
&&&&&&&&string&connStr&=&&Provider=Microsoft.Jet.OLEDB.4.0;&&+
&&&&&&&&&&&&&&&&&&&&&&&&&Extended&Properties=\&Excel&8.0;HDR=No;IMEX=1\&;&&+&//&指定扩展属性为&Microsoft&Excel&8.0&(97)&9.0&(&(2002),并且第一行作为数据返回,且以文本方式读取
&&&&&&&&&&&&&&&&&&&&&&&&&data&source=&&+&xlsP
&&&&&&&&string&sql_F&=&&SELECT&*&FROM&[{0}]&;
&&&&&&&&OleDbConnection&conn&=&
&&&&&&&&OleDbDataAdapter&da&=&
&&&&&&&&DataTable&tblSchema&=&
&&&&&&&&IList&string&&tblNames&=&
&&&&&&&&//&初始化连接,并打开
&&&&&&&&conn&=&new&OleDbConnection(connStr);
&&&&&&&&conn.Open();
&&&&&&&&//&获取数据源的表定义元数据&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&//tblSchema&=&conn.GetSchema(&Tables&);
&&&&&&&&tblSchema&=&conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables,&new&object[]&{&null,&null,&null,&&TABLE&&});
&&&&&&&&//GridView1.DataSource&=&tblS
&&&&&&&&//GridView1.DataBind();
&&&&&&&&//&关闭连接
&&&&&&&&//conn.Close();
&&&&&&&&tblNames&=&new&List&string&();
&&&&&&&&foreach&(DataRow&row&in&tblSchema.Rows)&{
&&&&&&&&&&&&tblNames.Add((string)row[&TABLE_NAME&]);&//&读取表名
&&&&&&&&}
&&&&&&&&//&初始化适配器
&&&&&&&&da&=&new&OleDbDataAdapter();
&&&&&&&&//&准备数据,导入DataSet
&&&&&&&&DataSet&ds&=&new&DataSet();
&&&&&&&&foreach&(string&tblName&in&tblNames)&{
&&&&&&&&&&&&da.SelectCommand&=&new&OleDbCommand(String.Format(sql_F,&tblName),&conn);
&&&&&&&&&&&&try&{
&&&&&&&&&&&&&&&&da.Fill(ds,&tblName);
&&&&&&&&&&&&}
&&&&&&&&&&&&catch&{
&&&&&&&&&&&&&&&&//&关闭连接
&&&&&&&&&&&&&&&&if&(conn.State&==&ConnectionState.Open)&{
&&&&&&&&&&&&&&&&&&&&conn.Close();
&&&&&&&&&&&&&&&&}
&&&&&&&&&&&&&&&&
&&&&&&&&&&&&}
&&&&&&&&}
&&&&&&&&//&关闭连接
&&&&&&&&if&(conn.State&==&ConnectionState.Open)&{
&&&&&&&&&&&&conn.Close();
&&&&&&&&}
&&&&&&&&//&对导入DataSet的每张sheet进行处理&&&&&&&&
&&&&&&&&//&这里仅做显示
&&&&&&&&GridView1.DataSource&=&ds.Tables[0];
&&&&&&&&GridView1.DataBind();
&&&&&&&&GridView2.DataSource&=&ds.Tables[1];
&&&&&&&&GridView2.DataBind();
&&&&&&&&//&more&codes
&&&&&&&&//&.
这里我们就不需要对SELEC&语句进行“硬编码”,可以根据需要动态的构造FROM&字句的“表名”。
不仅可以,获取表明,还可以获取每张表内的字段名、字段类型等信息:
tblSchema&=&conn.GetOleDbSchemaTable(OleDbSchemaGuid.Columns,&new&object[]&{&null,&null,&null,&null&});
在ADO.nET&1.x&时候只有OleDb提供了GetOleDbSchemaTable&方法,而SqlClient或者OrcaleClient没有对应的方法,因为对应数据库已经提供了类似功能的存储过程或者系统表供应用程序访问,比如对于Sql&Server:&
SELECT&*
FROM&RMATION_SCHEMA.COLUMNS
WHERE&TABLE_NAME&=&N'Customers'
而在ADO.NET&2.0中每个xxxConnenction都实现了基类mon.DbConnection的&GetSchemal&方法
来获取数据源的架构信息。
快试试吧,可以对自己使用挽尊卡咯~◆◆
快试试吧,可以对自己使用挽尊卡咯~◆◆
很想问一下 要是我的xls格式不是正规的你怎么读
登录百度帐号推荐应用君,已阅读到文档的结尾了呢~~
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
如何在 Visual Basic 或 VBA 中使用 ADO 来处理 Excel 数据
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer-4.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口

我要回帖

更多关于 csgo有意思的昵称 的文章

 

随机推荐