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

来源:互联网 发布:网络摄像机功能介绍 编辑:程序博客网 时间:2024/05/24 06:29

使用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();        }    }}


1 0
原创粉丝点击