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日

相关文章

  • 如何使用Rotativa在ASP.NET Core MVC中创建PDF详解

    如何使用 Rotativa 在 ASP.NET Core MVC 中创建 PDF Rotativa 是一个用于在 ASP.NET Core MVC 中创建 PDF 的开源工具,可以将 Razor 视图转换为 PDF 文件。本攻略将详细介绍如何使用 Rotativa 在 ASP.NET Core MVC 中创建 PDF,并提供多个示例说明。 步骤一:安装 Ro…

    C# 2023年5月17日
    00
  • .net的序列化与反序列化实例

    . 什么是序列化和反序列化 序列化(Serialization)指将对象转化为可以存储或传输的格式的过程。在此过程中,对象中的属性值被提取并打包为一组二进制数据,可以被序列化为XML、JSON、二进制等格式。在.NET中,序列化包含了 Binary serialization,XML serialization和 JSON serialization几种方式…

    C# 2023年5月31日
    00
  • C# 关于AppDomain的一些总结

    关于C#中的AppDomain,我来进行详细的说明和总结。 一、什么是AppDomain 在C#中,每个线程都属于一个应用程序域(AppDomain)。AppDomain是.NET中用于进程隔离的一种技术,可以将应用程序分隔为不同的域,从而提高了程序的安全性和稳定性。 AppDomain可以看作是CLR(公共语言运行库)中的一个隔离容器,它可以加载和执行单独…

    C# 2023年5月14日
    00
  • asp.net gridview 72般绝技第1/2页

    ASP.NET GridView 72般绝技攻略 什么是 ASP.NET GridView? ASP.NET GridView 是 ASP.NET 网站开发中非常常用的控件之一。它可以方便地在网页上展示数据,并且提供了很多丰富的特性,如排序、分页、过滤、编辑等。 GridView 的基本用法 GridView 的基本用法非常简单,只需要在 ASP.NET 网…

    C# 2023年5月31日
    00
  • C#运算符之与,或,异或及移位运算小结

    让我们来详细讲解一下C#中的逻辑运算符、位运算符及移位运算符。 逻辑运算符 与运算符(&&) 与运算符用于连接两个逻辑表达式并在两个表达式均为true时返回true。与运算符可以被用于任何基本的数据类型,例如bool、int等。 int a = 3; int b = 5; if (a < b && b % 2 == 1)…

    C# 2023年6月8日
    00
  • 在Asp.net core项目中使用WebSocket

    在 ASP.NET Core 项目中使用 WebSocket 的完整攻略 WebSocket 是一种在 Web 应用程序中实现实时通信的协议。在 ASP.NET Core 项目中使用 WebSocket 可以实现实时信的功能。下面是详细的攻略: 步骤1:创建 ASP.NET Core 项目 在 Visual Studio 中创建一个名为“WebSocketD…

    C# 2023年5月12日
    00
  • C#中判断本地系统的网络连接状态的方法

    C#中判断本地系统的网络连接状态有多种方法,以下是其中两种方法的详细讲解。 方法一:使用.NET Framework提供的System.Net.NetworkInformation命名空间中的NetworkInterface类。 步骤如下: 引用System.Net.NetworkInformation命名空间。 使用NetworkInterface类的Ge…

    C# 2023年6月7日
    00
  • 12个Visual Studio调试效率技巧(小结)

    12个Visual Studio调试效率技巧(小结) Visual Studio是开发人员常用的IDE之一,它提供了丰富的功能和工具来帮助我们更快、更准确地开发和调试代码。在这篇文章中,我向大家分享了12个Visual Studio调试效率技巧,让我们在调试代码时更加高效。 技巧1:使用断点条件 有时候,我们只想在特定情况下停止代码的执行,这时我们可以使用断…

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