C#实战003:Excel操作-OleDb链接Excel

    OleDb把excel文件作为数据源来读取,直接用Sql语句来操作数据,并且不需要安装Office Excel就可以使用,所以用OLEDB方式读取EXCEL的速度是非常快的。但是当Excel数据量很大时,会非常占用内存,当内存不够时会抛出内存溢出的异常,容易丢失数据,因为是Sql语句来操作数据的,所以灵活性较低,如果你处理的数据不大且无需复杂操作时可以使用OLEDB方式读写EXCEL。

首先我们引入以下模块:

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

 然后在类中写如下方法即可成功链接Excel,

        public string ExcelPath = @"C:\Users\Administrator\Desktop\test.xlsx";
        public void getExcel(string ExcelPath)
        {
            if (File.Exists(ExcelPath))//判断文件是否存在
            {
                string strConn = ""; 
                FileInfo file = new FileInfo(ExcelPath);//读取excel文件名
                string fileType = file.Extension;//提取excel文件名后缀,判断文件名类型
                //----------------------------获取Excel表格数据---------------------------
                if (fileType == ".xls")
                //读取“.xls”时使用"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + ExcelPath + ";Extended Properties='Excel 8.0;HDR=Yes;IMEX=1;'" 
                    strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source =" + ExcelPath + ";Extended Properties=Excel 8.0";
                else
                //读取“.xlsx”时使用 "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + ExcelPath + ";Extended Properties='Excel 12.0;HDR=Yes;IMEX=1;'"
                    strConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source =" + ExcelPath + ";Extended Properties=Excel 8.0";
                OleDbConnection myCon = new OleDbConnection(strConn);     //连接数据库    
                myCon.Open();//打开数据库
             }
       }

HDR=Yes,这代表第一行是标题,不做为数据使用,系统默认的是YES 

IMEX=0 时为“汇出模式”,这个模式开启的 Excel 档案只能用来做“写入”用途。            

IMEX=1 时为“汇入模式”,这个模式开启的 Excel 档案只能用来做“读取”用途。              

IMEX=2 时为“链接模式”,这个模式开启的 Excel 档案可同时支持“读写”用途。
完整代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data;
using System.Data.OleDb;
using System.IO;

namespace ConsoleApplication2
{
    class Program
    {
        static void Main(string[] args)
        {
          
        }
        /// <summary>
        /// 读取Excel文件并将其缓存到内存中
        /// </summary>
        /// <param name="Path"></param>
        /// <returns></returns>
        public string ExcelPath = @"C:\Users\Administrator\Desktop\test.xlsx";
        public void ExcelToDS(string Path)
        {
            if (File.Exists(ExcelPath))
            {
                string strConn = "";
                FileInfo file = new FileInfo(ExcelPath);//读取excel文件名
                string fileType = file.Extension;//提取excel文件名后缀,判断文件名类型
                if (fileType == ".xls")
                    strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source =" + ExcelPath + ";Extended Properties=Excel 8.0";
                else
                    strConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source =" + ExcelPath + ";Extended Properties=Excel 8.0";
                OleDbConnection conn = new OleDbConnection(strConn);     //连接数据库    
                conn.Open();//打开数据库
                string strExcel = "";
                strExcel = "select * from [客户排配计划$]";//定义Excel工作表单
                OleDbDataAdapter myCommand = new OleDbDataAdapter(strExcel, conn);//从工作表中查询数据
                DataSet DS = new DataSet(); //创建数据集对象
                myCommand.Fill(DS, "table1");//填充数据集 
            }
           
        }

    }


}

欢迎关注本人的公众号:编程手札,文章也会在公众号更新

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
### 回答1: SQL Server OLE DB Provider是一个用于连接和访问SQL Server数据库的数据提供程序。它是由Microsoft开发的,为了方便开发人员在多种编程环境中与SQL Server数据库进行交互而设计。 SQL Server OLE DB Provider可以与各种编程语言和开发工具一起使用,包括Visual Basic、C#、ASP.NET等。它提供了一系列的接口和方法,使得开发人员可以方便地执行数据库操作,如查询、插入、更新和删除数据。 通过SQL Server OLE DB Provider,开发人员可以使用SQL语言来编写和执行数据库查询。它还支持事务处理和存储过程等高级功能,使得开发人员可以更加灵活和高效地操作数据库。 SQL Server OLE DB Provider还提供了一些性能优化的功能,例如连接池和命令缓存。连接池允许开发人员重复使用数据库连接,以减少连接的开销。命令缓存可以缓存已执行的命令,以加快后续执行同样命令的速度。 总之,SQL Server OLE DB Provider是一个强大而灵活的数据提供程序,可以帮助开发人员快速、高效地与SQL Server数据库进行交互。无论是小型的个人项目还是大型的企业应用,它都是一个非常有用的工具。 ### 回答2: SQL Server OLE DB Provider是一种用于连接和访问SQL Server数据库的数据访问技术。它是SQL Server提供的一种OLE DB驱动程序,用于支持通过OLE DB接口进行数据库操作。 SQL Server OLE DB Provider的使用可以通过编程语言(如C#、VB.Net等)来实现。首先,需要通过连接字符串指定要连接的SQL Server数据库的相关信息,如服务器名称、数据库名称、身份验证方式等。然后,使用Connection对象建立与数据库的连接。接下来,可以使用Command对象执行SQL语句,如查询、插入、更新、删除等操作。执行SQL语句后,可以通过DataReader对象来读取和处理查询结果。最后,使用Connection对象关闭与数据库的连接。 SQL Server OLE DB Provider可以提供高性能的数据访问能力,并且支持灵活的数据操作。它还提供了一些高级特性,如事务处理、命令缓存、数据缓存等,可以提升数据库操作的效率和性能。此外,SQL Server OLE DB Provider还支持参数化查询,可以防止SQL注入攻击,并且提供了一些其他的安全特性,如加密通信等。 总而言之,SQL Server OLE DB Provider是一种可靠和高效的数据库访问技术,适用于连接和操作SQL Server数据库。通过合理的使用,可以实现对数据库的快速和可靠的访问,并提供了丰富的功能和特性来支持开发人员的需求。 ### 回答3: SQL Server OLE DB Provider是一种用于连接和访问SQL Server数据库的OLE DB提供程序。OLE DB是一种面向组件的数据访问技术,允许应用程序通过一组统一的API连接到不同的数据源,包括SQL Server。 SQL Server OLE DB Provider提供了一个强大的接口,使开发人员能够使用SQL Server数据库进行高效的数据访问。它支持基本的数据操作(如插入、更新、删除和查询),还提供了事务处理的功能,可以保证数据的一致性和完整性。 使用SQL Server OLE DB Provider,开发人员可以编写基于SQL语言的查询来查询和操作数据库中的数据。他们可以使用标准的ADO(ActiveX Data Objects)对象模型来进行数据访问和操作,这使得编写和维护数据访问代码变得更加简单和方便。 除了支持标准的数据操作功能,SQL Server OLE DB Provider还提供了一些高级功能,如连接池、命令参数化、异步查询和分布式查询。这些功能可以提高数据访问的性能和灵活性,并帮助开发人员更好地管理和优化数据库操作。 总之,SQL Server OLE DB Provider是一种在应用程序中连接和访问SQL Server数据库的重要工具。它提供了强大的功能和灵活性,使开发人员能够高效地处理和管理数据库中的数据。如果您需要与SQL Server数据库进行交互,使用SQL Server OLE DB Provider将是一个很好的选择。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ProgramNotes

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值