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#实现贪吃蛇小游戏完整攻略 前言 贪吃蛇作为一款经典的小游戏,大家都玩过。今天我们将借助C#的强大功能,实现一个简单的贪吃蛇小游戏,并将整个过程详细讲解。 准备工作 在开始之前,我们需要先准备好开发C#小游戏的环境。1. 首先需要安装Visual Studio,此处以Visual Studio 2019为例。2. 安装完成后,打开VS,点击”创建新项目”,…

    C# 2023年6月1日
    00
  • 使用.NET升级助手将.NET Framework项目升级为.NET 6

    使用.NET升级助手将.NET Framework项目升级为.NET 6 本攻略将介绍如何使用.NET升级助手将.NET Framework项目升级为.NET 6。以下是完整的攻略步骤。 步骤 步骤1:安装.NET升级助手 首先,需要安装.NET升级助手。可以使用以下命令在命令行中安装.NET升级助手: dotnet tool install -g upgr…

    C# 2023年5月17日
    00
  • C#打印PDF文档的10种方法(小结)

    下面我将为您详细讲解“C#打印PDF文档的10种方法(小结)”的完整攻略。 1. 概述 在C#中打印PDF文档可以用多种方法,本文将介绍10种常用的方法,并举例说明,帮助开发者更好的理解。 2. iTextSharp库 iTextSharp是一个流行的开源PDF开发库,可以用C#和VB.NET编写PDF文件。它不仅可以创建PDF文件,还可以读取、编辑、添加注…

    C# 2023年6月1日
    00
  • C#程序窗体间使用回调事件方式通讯示例

    首先需要注意的是,C#窗体间的通讯方式有很多种,而使用回调事件方式通讯是其中一种较为常见的方式。实现回调事件通讯,需要了解委托和事件的相关知识。 一、委托和事件 委托(Delegate)是C#中一个非常重要的概念,它可以看做是一个函数指针,可以指向一个或多个方法。而事件(Event)则是使用委托的一种方式,可以通过事件来触发委托执行。 在C#中声明委托,需要…

    C# 2023年6月7日
    00
  • Visual Studio 未能加载各种Package包的解决方案

    Visual Studio无法加载Package解决方案错误的完整攻略 在使用Visual Studio时,你可能会遇到“未能加载各种Package包”的错误提示。这种情况通常是由于Visual Studio无法找到或加载所需的NuGet Package,而导致的。下面是解决此问题的完整攻略。 步骤一:查看Package控制台 在Visual Studio中…

    C# 2023年5月15日
    00
  • .NET Core部署到linux(CentOS)最全解决方案,进阶篇(Supervisor+Nginx)

    在.NET Core部署到linux(CentOS)最全解决方案,常规篇一文,我们详细讲解了传统的.NET Core部署到Linux服务器的方法,学到了Linux在虚拟机下的安装、Xshell,Xftp的使用方法、git在linux下的交互使用以及.net core在linux下的发布与运行全过程。本文讲讲解通过使用Supervisor+Nginx的组合来实…

    C# 2023年4月30日
    00
  • 如何将asp.net core程序部署到Linux服务器

    将ASP.NET Core程序部署到Linux服务器需要以下步骤: 在Linux服务器上安装.NET Core运行时环境和ASP.NET Core运行时环境。 在Linux服务器上安装Web服务器,如Nginx或Apache。 将ASP.NET Core程序发布为自包的执行文件或Docker容器。 配置Web服务器以反向代理到ASP.NET Core程序。 …

    C# 2023年5月12日
    00
  • asp.net GridView 删除时弹出确认对话框(包括内容提示)

    下面是关于“asp.net GridView 删除时弹出确认对话框(包括内容提示)”的完整攻略: 一、需求 我们需要在一个asp.net GridView中删除数据时,弹出确认对话框,同时包含内容提示,确保用户明确知道正在进行的操作。 二、实现步骤 1.在GridView中添加删除按钮。 在GridView的模板列中,添加一个“删除”按钮,并设置Comman…

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