C# 使用 OleDbConnection 连接读取Excel的方法

C# 使用 OleDbConnection 连接读取Excel的方法

要使用 C# 语言连接读取 Excel 文件,可以使用 OleDbConnection 类进行操作。下面将介绍 C# 使用 OleDbConnection 连接读取 Excel 的方法及示例。

步骤一:引用命名空间

使用 OleDbConnection 类需要引用以下命名空间:

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

步骤二:创建连接

需要使用 OleDbConnection 类创建连接,其中连接字符串分为两类:

  1. 旧版 Excel 连接字符串,数据源为 .xls 文件格式,如下所示:

csharp
string connectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\folder\file.xls;Extended Properties='Excel 8.0;HDR=YES;'";

  1. 新版 Excel 连接字符串,数据源为 .xlsx 文件格式,如下所示:

csharp
string connectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\folder\file.xlsx;Extended Properties='Excel 12.0;HDR=YES;'";

需要注意的是,在创建连接字符串时,需要使用数据源的路径及文件名,可以在 Extended Properties 中指定 Excel 版本及 Sheet 名称。

步骤三:读取数据

使用 OleDbConnection 的 ExecuteReader 方法可以执行 SQL 语句,并返回用来读取数据的 OleDbDataReader 对象。示例如下:

using (OleDbConnection connection = new OleDbConnection(connectionString))
{
    connection.Open();
    OleDbCommand command = new OleDbCommand("SELECT * FROM [Sheet1$]", connection);
    using (OleDbDataReader dataReader = command.ExecuteReader())
    {
        while (dataReader.Read())
        {
            Console.WriteLine(dataReader[0].ToString());
        }
    }
}

上述示例中,我们使用 SELECT * FROM [Sheet1$] SQL 语句来读取 Sheet1 表的全部数据,并使用 OleDbDataReader 对象遍历数据。

示例一:读取 Excel 文件并输出内容

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

namespace ReadExcel
{
    class Program
    {
        static void Main(string[] args)
        {
            string connectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\temp\data.xlsx;Extended Properties='Excel 12.0;HDR=YES;'";
            using (OleDbConnection connection = new OleDbConnection(connectionString))
            {
                try
                {
                    connection.Open();
                    OleDbCommand command = new OleDbCommand("SELECT * FROM [Sheet1$]", connection);
                    using (OleDbDataReader dataReader = command.ExecuteReader())
                    {
                        while (dataReader.Read())
                        {
                            for (int c = 0; c < dataReader.FieldCount; c++)
                            {
                                Console.Write(dataReader[c].ToString() + " ");
                            }
                            Console.WriteLine();
                        }
                    }
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message);
                }
                finally
                {
                    connection.Close();
                }
            }
        }
    }
}

上述示例中,我们以 data.xlsx 文件为数据源,使用 OleDbConnection 对象连接 data.xlsx 文件,并使用 command.ExecuteScalar 方法获取 Sheet1 表的全部数据并输出。

示例二:查询 Excel 文件并显示结果

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

namespace ReadExcel
{
    class Program
    {
        static void Main(string[] args)
        {
            string connectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\temp\data.xlsx;Extended Properties='Excel 12.0;HDR=YES;'";
            using (OleDbConnection connection = new OleDbConnection(connectionString))
            {
                try
                {
                    connection.Open();
                    OleDbCommand command = new OleDbCommand("SELECT * FROM [Sheet1$] WHERE ID < 4", connection);
                    using (OleDbDataReader dataReader = command.ExecuteReader())
                    {
                        while (dataReader.Read())
                        {
                            for (int c = 0; c < dataReader.FieldCount; c++)
                            {
                                Console.Write(dataReader[c].ToString() + " ");
                            }
                            Console.WriteLine();
                        }
                    }
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message);
                }
                finally
                {
                    connection.Close();
                }
            }
        }
    }
}

上述示例中,我们以 data.xlsx 文件为数据源,使用 OleDbConnection 对象连接 data.xlsx 文件,并使用 command.ExecuteScalar 方法获取 Sheet1 表中 ID 小于 4 的数据并输出。

以上就是 C# 使用 OleDbConnection 连接读取 Excel 的方法及示例。希望可以帮助你更好地进行 Excel 数据读取。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C# 使用 OleDbConnection 连接读取Excel的方法 - Python技术站

(0)
上一篇 2023年6月2日
下一篇 2023年6月2日

相关文章

  • 利用C#开发浏览器扩展的全过程记录

    让我为你详细地讲解“利用C#开发浏览器扩展的全过程记录”的完整攻略。 1. 确定浏览器扩展的功能 在开发浏览器扩展之前,我们需要确定扩展的功能,例如实现一个网站截图工具、广告拦截器等等。在本次攻略中,我们选择实现一个简单的网页计数器。 2. 创建C#类库项目 我们需要创建一个C#类库项目,用来编写代码实现所需的功能。在Visual Studio中创建一个类库…

    C# 2023年6月3日
    00
  • C#写一套最全的MySQL帮助类(包括增删改查)

    介绍说明:这个帮助类包含了六个主要的方法:ExecuteNonQuery、ExecuteScalar、ExecuteQuery、ExecuteQuery(泛型)、Insert、Update和Delete。其中,ExecuteNonQuery用于执行不返回结果集的SQL语句;ExecuteScalar用于执行一个查询,并返回结果集中第一行的第一列;Execut…

    C# 2023年4月27日
    00
  • 使用C#中的Flags特性

    使用C#中的Flags特性,可以为枚举类型的每个成员指定一个位掩码,以便组合多个成员的标志值。在本文中,我们将讲解如何使用Flags特性,并给出两个示例来说明其用法。 何时使用Flags特性 在需要对枚举类型中的多个成员使用二进制标志值时,就可以考虑使用Flags特性来解决。通过使用Flags特性,可以将多个成员的二进制标志值组合在一起,快速判断多个标志是否…

    C# 2023年6月3日
    00
  • 在asp.NET中字符串替换的五种方法第1/2页

    让我来为您详细讲解“在asp.NET中字符串替换的五种方法第1/2页”的完整攻略。 标题格式 在ASP.NET中字符串替换的五种方法 第1/2页 文本格式 在ASP.NET中,字符串替换是一个常见的任务。下面介绍ASP.NET中实现字符串替换的五种方法: 使用Replace()方法 使用正则表达式 使用StringBuilder 使用StringBuffer…

    C# 2023年6月8日
    00
  • asp.net 文章内容分页显示的代码

    为了实现文章内容的分页显示,我们可以使用 ASP.NET 内置的分页控件(Paging Control)或者自己手动实现分页功能。这里我将简单介绍一下自己手动实现分页功能的方法。 步骤一:确定需要分页的数据源 首先,我们需要确定需要分页显示的数据源,比如是从数据库、XML 文件或者其他来源获取的数据。为了演示方便,我们这里以从数组中获取数据为例。 strin…

    C# 2023年5月31日
    00
  • C#实现扫描枪扫描二维码并打印(实例代码)

    C#实现扫描枪扫描二维码并打印 关于扫描枪 扫描枪(Barcode Scanner)是一种专门用于扫描条形码和二维码等机器可读码的手持式设备,可以通过扫描枪将机器可读码中的信息转化为电信号,并通过接口输出,以方便数据采集。它在生产、仓储、物流等诸多行业发挥了重要作用,大大提高了生产效率。 实现要点 在进行C#实现扫描枪扫描二维码并打印的时候,需要考虑以下几个…

    C# 2023年6月7日
    00
  • c#不使用系统api实现可以指定区域屏幕截屏功能

    C#不使用系统API实现可以指定区域屏幕截屏功能攻略 在C#中,可以通过一些内置的或者第三方的类库来实现屏幕截屏功能。但是,有时候需要对特定区域进行截屏,本文将介绍如何使用C#实现指定区域屏幕截屏的功能,且不使用系统API,具体步骤如下: 步骤1:创建一个winform窗体应用 将以下代码添加到Main方法中: [STAThread] static void…

    C# 2023年6月8日
    00
  • c#实现的操作oracle通用类

    下面是详细讲解c#实现的操作oracle通用类的完整攻略。请按照以下步骤进行: 1. 下载与安装Oracle Database 在开始使用c#操作Oracle之前,需要先下载并安装Oracle Database。Oracle官方网站提供了免费的Oracle Express版本供个人和小型团队使用,你可以根据自己的需要去下载并安装。安装过程中需要注意选择“OD…

    C# 2023年6月6日
    00
合作推广
合作推广
分享本页
返回顶部