4

我有这段代码,我想将.xlsb文件转换为DataTable

public static class Utils
    {
        public static DataTable ImportExceltoDatatable(string filepath)
        {

            string connectionString = "Driver ={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)}; DBQ = " + filepath;

            string query = "Select * From [SheetName$]";

            using (var connection = new OdbcConnection(connectionString))
            using (var adapter = new OdbcDataAdapter(query, connection))
            {
                DataSet dataset = new DataSet();
                adapter.Fill(dataset); // <---------------- exception thrown here

                DataTable datatable = dataset.Tables[0];
                return datatable;
            };
        }
    }

adapter.Fill(datasaet)引发以下异常

System.Data.Odbc.OdbcException:'错误 [IM002] [Microsoft] [ODBC 驱动程序管理器] 未找到数据源名称且未指定默认驱动程序'

在计算机 ODBC 设置中,似乎安装了 Excel 驱动程序 在此处输入图像描述

如何使用此驱动程序的正确方法是什么,我在连接字符串中有错误吗?

不幸的是,我发现除了使用 ODBC 之外别无他法。

  • NPOI , EPPLUS不读取 XLSB。
  • LinqToExcel需要Microsoft.ACE.OLEDB.12.0在机器上注册。
  • Microsoft.Office.Interop.Excel需要在机器上安装 excel。
4

0 回答 0