两个几乎不相等的excel表使用OLEDB加载 – 有一个头和一个没有

我正在加载两个Excel工作表。 两者在第1行中的标题完全相同。我使用相同的代码。

现在,我得到了第二个文件的标题,而第一个没有标题。

码:

private static string GetExcelConnectionString(string Filename){return "Provider = Microsoft.ACE.OLEDB.12.0; Data Source = " + Filename + ";Extended Properties = \"Excel 12.0 Xml;HDR=YES\"";} private static void AddToListByOLE(string Filename, ref System.Collections.Generic.List<System.Data.DataTable> MyList, int nTab = -1) { string sql = string.Empty; using (System.Data.OleDb.OleDbConnection cn = new System.Data.OleDb.OleDbConnection(GetExcelConnectionString(Filename))) { using (System.Data.OleDb.OleDbDataAdapter adapter = new System.Data.OleDb.OleDbDataAdapter()) { System.Data.DataTable dt = new System.Data.DataTable(); using (System.Data.OleDb.OleDbCommand command = cn.CreateCommand()) { cn.Open(); System.Data.DataTable dtSchema = cn.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables, new object[] { null, null, null, "TABLE" }); string firstSheetName = dtSchema.Rows[0].Field<string>("TABLE_NAME"); sql = "SELECT * FROM [" + firstSheetName + "]"; command.CommandText = sql; adapter.SelectCommand = command; adapter.Fill(dt); if (dt.Rows.Count == 0) { System.Data.OleDb.OleDbDataReader reader = command.ExecuteReader(); dt.Load(reader); } cn.Close(); MyList.Add(dt); } } } } 

Imput – 两个excel工作簿显示重叠: 两个excel工作簿 - 重叠显示

连接string: 使用连接字符串

首次导入的结果(DataTable中没有标题): 第一个工作表导入 - 没有标题

第二次导入的结果(正确导入标题): 第二个工作表导入 - 与标题

有人有想法吗? 我真的没有想法,因为我使用完全相同的连接string(文件名除外)和相同的function在循环中加载此文件。

预先感谢您,J.

对不起。 我打开文件并保存另一次 – 不是导入function。 也许,这个文件有一个旧格式 – 我通过EM @ il收到它。