C# 使用OLEDB读取Excel,某些单元格读取错误

C# 使用OLEDB读取Excel,某些单元格读取错误,c#,excel,oledb,C#,Excel,Oledb,我正在尝试读取excel文件。某些单元格包含公式并被读取为REF!。我只需要计算数值的单元格值,我不关心公式。有办法处理公式吗?我可以在OLEDB中执行此操作,还是应该切换到互操作?提前谢谢 var connectionString = string.Format(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties=""Excel 12.0;HDR=NO;IMEX=1""", fileName); str

我正在尝试读取excel文件。某些单元格包含公式并被读取为REF!。我只需要计算数值的单元格值,我不关心公式。有办法处理公式吗?我可以在OLEDB中执行此操作,还是应该切换到互操作?提前谢谢

var connectionString = string.Format(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties=""Excel 12.0;HDR=NO;IMEX=1""", fileName);
string firstSheetName;
using (OleDbConnection con = new OleDbConnection(connectionString))
{
     con.Open();
     DataTable dt = con.GetSchema("Tables");
     firstSheetName = dt.Rows[0]["TABLE_NAME"].ToString();
}

var adapter = new OleDbDataAdapter("SELECT * FROM [" + firstSheetName + "]", connectionString);
var ds = new DataSet();
adapter.Fill(ds, "anyNameHere");
var data = ds.Tables["anyNameHere"];
string cellValue = (string)data.Rows[i].ItemArray[4];
我尝试添加TypeGuessRows=0;ImportMixedTypes=连接字符串的文本

var connectionString = string.Format(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties=""Excel 12.0;HDR=NO;IMEX=1;TypeGuessRows=0;ImportMixedTypes=Text""", fileName);

但这没有帮助

试试这个。使用getoledbschema而不是使用Get模式

        OleDbConnection connExcel = new OleDbConnection(conStr);
        OleDbCommand cmdExcel = new OleDbCommand();
        OleDbDataAdapter oda = new OleDbDataAdapter();
        DataTable dt = new DataTable();
        cmdExcel.Connection = connExcel;

        connExcel.Open();
        DataTable dtExcelSchema;
        dtExcelSchema = connExcel.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
        string SheetName=GettingSheetName(dtExcelSchema);
        connExcel.Close();

        //Read Data from First Sheet
        connExcel.Open();
        cmdExcel.CommandText = "SELECT * From [" + SheetName + "]";
        oda.SelectCommand = cmdExcel;
        oda.Fill(dt);
        connExcel.Close();