我在互联网上关注了几个例子。已安装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);
我忘记了什么?
答案 0 :(得分:0)
在不知道您使用的Excel文件版本或其数据内容的情况下,很难确定。您是否尝试在连接字符串中包含HDR和IMEX选项?
HDR=Yes;
- 表示第一行是包含列名而不是数据的标题行
HDR=No;
- 表示没有标题行
IMEX=1;
- 表示始终将混合数据列(包含数字,日期,字符串等的列)作为文本读取。请注意,如果您要写回Excel表格,此选项可能会导致问题,因为它基本上忽略了读取类型。另一种方法是明确定义DataTable的列。