使用OleDb读取Excel表

using System;
using System.Data.OleDb;
using System.Data;

namespace OleDB
{
    class Program
    {
        static void Main(string[] args)
        {
            //连接字符串的两个版本,分别对应  xls    xlsx
            //"Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + fileName + ";" + ";Extended Properties=\"Excel 8.0;HDR=YES;IMEX=1\"";
            //"Provider=Microsoft.ACE.OLEDB.12.0;" + "Data Source=" + fileName + ";" + ";Extended Properties=\"Excel 12.0;HDR=YES;IMEX=1\"";
            string fileName = "装备信息.xls";
            string connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + fileName + ";" + ";Extended Properties=\"Excel 8.0;HDR=YES;IMEX=1\""; ;
            //创建连接到数据源的对象
            OleDbConnection connection = new OleDbConnection(connectionString);
            //打开连接
            connection.Open();

            string sql = "select * from [sheet1$]";//查询命令(查询表格1)
            OleDbDataAdapter adapter = new OleDbDataAdapter(sql, connection);

            DataSet dataset = new DataSet();//用来存放数据

            adapter.Fill(dataset);//表示把查询的结果(datatable)放到(填充)dataset里面

            connection.Close();

            //取得数据
            DataTableCollection tableCollection = dataset.Tables;//获取当前集合中所有的表格
            DataTable table = tableCollection[0];//因为只在dataset里面放置了一张表格,所以索引[0]是刚刚查询到的数据

            //取得表格中的数据
            //取得table中的所有行
            DataRowCollection rowCollection = table.Rows;//返回和一个行的集合

            //遍历行的集合,取得每一个行的datarow信息
            foreach (DataRow row in rowCollection)
            {
                //取得row中前8列的数据  索引是0-7
                for (int i = 0; i < 8; i++)
                {
                    Console.Write(row[i] + " ");
                }
                Console.WriteLine();
            }
            Console.ReadKey();
        }
    }
}


### 使用OLEDB在VB.NET中读取Excel文件 在VB.NET中,可以通过使用`OleDbConnection`类来连接并读取Excel文件的内容。以下是实现这一功能的具体方法以及示例代码。 #### 连接字符串配置 为了通过OLEDB访问Excel文件,需要定义合适的连接字符串。对于不同的Excel版本(如`.xls`和`.xlsx`),连接字符串会有所不同: - **适用于Excel 97-2003 (.xls 文件)** 的连接字符串如下: ```plaintext Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\path\to\your\file.xls;Extended Properties="Excel 8.0;HDR=YES"; ``` - **适用于Excel 2007及以上 (.xlsx 文件)** 的连接字符串如下: ```plaintext Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\path\to\your\file.xlsx;Extended Properties="Excel 12.0 Xml;HDR=YES"; ``` 其中,“HDR=YES”示第一行作为列名处理;如果数据不包含列名,则应设置为“HDR=NO”。 #### 示例代码 下面是一个完整的VB.NET程序示例,展示如何利用OLEDB读取Excel文件中的数据: ```vbnet Imports System.Data.OleDb Module Module1 Sub Main() ' 定义连接字符串 Dim connectionString As String = "Provider=Microsoft.ACE.OLEDB.12.0;" & _ "Data Source=C:\path\to\your\file.xlsx;" & _ "Extended Properties=""Excel 12.0 Xml;HDR=YES"";" ' 创建连接对象 Using conn As New OleDbConnection(connectionString) Try ' 打开数据库连接 conn.Open() ' SQL查询语句,假设工作名为Sheet1$ Dim query As String = "SELECT * FROM [Sheet1$]" ' 创建命令对象 Using cmd As New OleDbCommand(query, conn) ' 创建适配器并将结果填充到DataTable中 Using adapter As New OleDbDataAdapter(cmd) Dim dataTable As New DataTable() adapter.Fill(dataTable) ' 遍历并打印格内容 For Each row As DataRow In dataTable.Rows Console.WriteLine(String.Join(", ", row.ItemArray)) Next End Using End Using Catch ex As Exception Console.WriteLine("Error: " & ex.Message) Finally If conn.State = ConnectionState.Open Then conn.Close() End If End Try End Using End Sub End Module ``` 此代码片段展示了如何打开一个Excel文件,并从中提取指定工作的数据。它还包含了异常捕获机制以确保即使发生错误也能安全关闭资源[^1]。 #### 注意事项 - 如果目标计算机未安装支持的Access Database Engine组件,则可能无法成功运行上述代码。需下载并安装对应的驱动程序。 - 对于不同类型的电子格或者更复杂的场景下使用的其他连接方式可以参考额外提供的ADO.NET连接串例子[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值