使用OleDbConnection读取Excel时的Microsoft.Ace.OleDb.12.0异常

使用OleDbConnection读取Excel文件时,代码没问题,编译时却报错:The 'Microsoft.ACE.OLEDB.12.0' provider is not registered on the local machine.

解决办法:下载AccessDatabaseEngine.exe, 并右键单击,选择Open, 然后它自动配置好环境。这样再编译就不会报错了。


附一个控制台程序建立的使用OleDbConnection方法访问并读取Excel文件的代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Microsoft.Office.Interop.Excel;
using System.IO;
using System.Reflection;
using System.Data.OleDb;
using System.Data;

namespace SeleniumTest2
{
    class Program
    {
        static void Main(string[] args)
        {
            string strConn = @"Provider=Microsoft.ACE.OLEDB.12.0; Data Source=C:\Temp\Book1.xlsx;Extended Properties=Excel 12.0";
            OleDbConnection conn = new OleDbConnection(strConn);
            OleDbDataAdapter adapter = new OleDbDataAdapter("select * from [Sheet1$]", conn);
            DataSet ds = new DataSet();
            adapter.Fill(ds);
            //Console.WriteLine(ds.Tables[0].Rows.Count.ToString());

            foreach(DataRow dataRow in ds.Tables[0].Rows)
            {
                for(int i=0;i<dataRow.ItemArray.Count();i++)
                {          
                    Console.WriteLine(dataRow.ItemArray[i]);
                }
            }
            //Console.WriteLine(ds.Relations.Count);
            Console.ReadLine();
        }
    }
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值