我正在尝试读取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对其进行读取或写入。

关于c# - 使用C#中的OLEDB连接读取Excel文件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43663844/

10-12 12:21
查看更多