使用C#中的OLEDB连接读取Excel文件

我试图读取Excel文件,并将数据放入C#中的数据表。当我尝试使用Excel 97-2003文件格式(.xls)它工作正常。但是当我尝试使用Excel工作簿格式(.xlsx)它是得到如下的错误,

“外部表格不是预期的格式”。

这是我的代码段。

string file_name = null; OpenFileDialog file_d = new OpenFileDialog(); file_d.Filter = "Excel Files (*.xlsx)|*.xlsx|Excel Files (*.xls)|*.xls"; file_d.Title = "Select Attendance Record"; if (file_d.ShowDialog() == DialogResult.OK) { file_name = file_d.FileName; } String ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + file_name + ";Extended Properties=Excel 8.0;"; try { System.Data.OleDb.OleDbConnection MyConnection; System.Data.DataSet DtSet; System.Data.OleDb.OleDbDataAdapter MyCommand; MyConnection = new System.Data.OleDb.OleDbConnection(ConnectionString); MyCommand = new System.Data.OleDb.OleDbDataAdapter("select * from [Sheet1$]", MyConnection); MyCommand.TableMappings.Add("Table", "TestTable"); DtSet = new System.Data.DataSet(); MyCommand.Fill(DtSet); dataGridView1.DataSource = DtSet.Tables[0]; MyConnection.Close(); } catch (Exception ex) { MessageBox.Show(ex.ToString()); } 

请帮助我的错误。感谢先进。

自Office 2007以来,“.xlsx”和其他Office文件都是XML格式。 您可以使用OpenXML来读取或写入它们。