从Excel读取(.xlsx)

时间:2018-01-05 16:04:48

标签: c# excel

我在互联网上关注了几个例子。已安装AccesDataBaseEngine。

但我仍然收到此错误消息:

System.Data.OleDb.OleDbException: 'External table is not in the expected format.'

我尝试了一些人们提出的建议,但没有任何作用。

这是代码:

string path = @"C:\...\...\Desktop\MyFile.xlsx";
           string connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + path + ";Extended Properties=Excel 12.0;";

            var dataAdapter = new OleDbDataAdapter("SELECT * FROM [HHH$]", connectionString);
            var dataTable = new DataTable();
            dataAdapter.Fill(dataTable);

我忘记了什么?

1 个答案:

答案 0 :(得分:0)

在不知道您使用的Excel文件版本或其数据内容的情况下,很难确定。您是否尝试在连接字符串中包含HDR和IMEX选项?

HDR=Yes; - 表示第一行是包含列名而不是数据的标题行

HDR=No; - 表示没有标题行

IMEX=1; - 表示始终将混合数据列(包含数字,日期,字符串等的列)作为文本读取。请注意,如果您要写回Excel表格,此选项可能会导致问题,因为它基本上忽略了读取类型。另一种方法是明确定义DataTable的列。