交互网站怎么做,网站备案工作,360网站备案,wordpress新站都该设置些什么日期#xff1a;2023年8月7日 作者#xff1a;Commas 签名#xff1a;(ง •_•)ง 积跬步以致千里,积小流以成江海…… 注释#xff1a;如果您觉得有所帮助#xff0c;帮忙点个赞#xff0c;也可以关注我#xff0c;我们一起成长#xff1b;如果有不对的地方#xff… 日期2023年8月7日 作者Commas 签名(ง •_•)ง 积跬步以致千里,积小流以成江海…… 注释如果您觉得有所帮助帮忙点个赞也可以关注我我们一起成长如果有不对的地方还望各位大佬不吝赐教谢谢^ - ^ 1.01365 37.78340.99365 0.0255 1.02365 1377.40830.98365 0.0006 文章目录 一、前言二、使用第三方库Jet.OLEDB2-1添加引用2-2创建对象实例2-3数据连接字符串解析重点2-4读取.xls格式的数据2-5读取.xlsx格式的数据 三、结束语 一、前言
Microsoft Excel 是广泛使用的电子表格软件, 在 VB6 中读取 Excel 数据是常见的任务可以用于数据处理、信息展示等。本文将介绍通过 第三方库Jet.OLEDB 读取 Excel 数据话不多说直接上教程。
二、使用第三方库Jet.OLEDB
Jet.OLEDB 是一种广泛使用的数据访问技术我们可以通过它来读取 Excel 数据。这种方法通常被大家认定为只可以读取早期版本的 Excel 文件Excel 97-2003格式.xls难道真的不可以读取高版本的数据了吗这里留个疑问我们继续…
2-1添加引用
首先我们在工程引用中添加 Microsoft ActiveX Data Objects xx.x Library的引用。 这个是采用了 前期绑定静态绑定 的方式如果换乘 后期绑定动态绑定 的方式就不需要添加引用直接CreateObject获得对象实例就可以。
2-2创建对象实例
前期绑定静态绑定 创建方式
Dim CN As New ADODB.Connection
Dim RS As New ADODB.Recordset后期绑定动态绑定 创建方式
Set CN CreateObject(adodb.connection)
Set RS CreateObject(adodb.recordset)2-3数据连接字符串解析重点
数据连接字符串如下所示
ProviderMicrosoft.Jet.OLEDB.4.0;Data Sourcepath;Extended PropertiesExcel 8.0;HDRYes;;Provider: 指定要使用的数据提供程序。在这里我们使用了 Microsoft Jet OLEDB 4.0 提供程序该提供程序用于访问 Microsoft Excel 文件。Data Source: 指定 Excel 文件的路径。你需要将 path 替换为实际的Excel 文件路径比如 D:\example.xls 。Extended Properties: 用于指定连接的扩展属性。在这里我们设置为 Excel 8.0;HDRYes; 其参数说明如下
Extended Properties参数说明Excel 8.0表示连接使用 Excel 97-2003 的文件格式。Excel 12.0表示连接使用 Excel 2007 及以上的文件格式但是这个参数不过不可用于Microsoft Jet OLEDB 4.0 提供程序HDRYes表示第一行的数据包含列标题HDRNo表示第一行的数据将被当作普通数据而不是列标题。
2-4读取.xls格式的数据 示例代码
Private Sub CmdJet_Click()
On Error Resume Next
函数说明使用第三方库Jet.OLEDB读取Excel数据(.xls格式)
创建作者Commas
创建时间2023-08-06
修改时间
------传参说明------
------传参说明------Excel文件的路径Dim sXLPath As StringsXLPath App.Path \example.xlsxsXLPath App.Path \example.xls NO1前期绑定静态绑定 需要添加对Microsoft ActiveX Data Objects xx.x Library的引用版本号根据ADO版本变化Dim CN As New ADODB.ConnectionDim RS As New ADODB.Recordset NO2后期绑定动态绑定Dim CN As Object New ADODB.ConnectionDim RS As Object New ADODB.RecordsetSet CN CreateObject(adodb.connection)Set RS CreateObject(adodb.recordset)Dim CNStr As StringDim sqlQuery As String 连接到Excel文件CNStr ProviderMicrosoft.Jet.OLEDB.4.0;Data Source{path};Extended PropertiesExcel 8.0;HDRYes;;CNStr ProviderMicrosoft.Jet.OLEDB.4.0;Data Source{path};Extended PropertiesExcel 12.0;HDRYes;;CNStr Replace(CNStr, {path}, sXLPath)CN.Open CNStr 构造SQL查询语句sqlQuery SELECT * FROM [Sheet1$A1:C5]; 执行查询并将结果保存到记录集RecordsetRS.Open sqlQuery, CN 将数据读取到数组中Dim aryData() As VariantaryData RS.GetRowsRS.CloseCN.Close输出,获取二维数组的行数和列数Dim rows As Long, cols As Longrows UBound(aryData, 1) 1 行数cols UBound(aryData, 2) 1 列数 遍历二维数组Dim i As Long, j As LongFor i 0 To rows - 1For j 0 To cols - 1 访问二维数组中的元素Debug.Print aryData( i , j ) aryData(i, j)Next jNext i
End Sub返回结果
aryData(0, 0) 张三
aryData(0, 1) 李小龙
aryData(0, 2) 王五
aryData(0, 3) 赵六
aryData(1, 0) 技术部
aryData(1, 1) 技术部
aryData(1, 2) 市场部
aryData(1, 3) 销售部
aryData(2, 0) 18
aryData(2, 1) 19
aryData(2, 2) 20
aryData(2, 3) 212-5读取.xlsx格式的数据
尝试一
数据连接字符串
sXLPath App.Path \example.xlsx
CNStr ProviderMicrosoft.Jet.OLEDB.4.0;Data Source{path};Extended PropertiesExcel 8.0;HDRYes;;
CNStr Replace(CNStr, {path}, sXLPath)测试结果 尝试二
数据连接字符串 sXLPath App.Path \example.xlsx
CNStr ProviderMicrosoft.Jet.OLEDB.4.0;Data Source{path};Extended PropertiesExcel 12.0;HDRYes;;
CNStr Replace(CNStr, {path}, sXLPath)
测试结果
三、结束语
经测试我们会发现 Microsoft.Jet.OLEDB.4.0 确实只支持读取旧版本的 Excel 文件即 .xls 格式的数据。这是因为Microsoft Jet OLEDB 4.0 是一个较旧的数据提供程序最初用于访问 Access数据库和旧版本的 Excel 文件而新版本 Excel 文件使用了不同的数据存储格式所以它并不支持直接读取的。
实际上Microsoft.Jet.OLEDB.4.0 也可以读取新版 Excel 文件的。鉴于文章篇幅问题下期我再出一期关于Microsoft.Jet.OLEDB.4.0 读取新版本 Excel 文件即 .xlsx 格式的数据的文章出文速度看各位大佬的点赞速度了哈。 参考文章
《Microsoft OLE DB Provider for Microsoft Jet》 版权声明本文为博主原创文章如需转载请给出 原文链接https://blog.csdn.net/qq_35844043/article/details/132128714