Oledb没有读取具有混合数据类型的EXCEL单元格

时间:2014-12-08 18:43:15

标签: c# excel oledb oledbconnection

我有一个excel代码,它基本上读取一个excel并将其存储在datatable对象中。

但是它没有正确读取包含字符串和整数的单元格。

EX:Index = RANDBETWEEN(20,80)。

我希望将单元格读作Index = 45。但相反,它只读45。

注意:为了将字符串附加到random int,我在Excel中使用了自定义dataType。

以下代码:

  public static DataTable ConnectToExcelDb(string provider, string envFileName, string sheetName)
    {
        OleDbConnection connection = new OleDbConnection(Extended Properties='Excel 12.0;IMEX=1;';Provider=Microsoft.ACE.OLEDB.12.0;Data Source= + envFileName + ";");
        DataTable dtTable = new DataTable();
        OleDbDataAdapter command = new OleDbDataAdapter("select * from [" + sheetName + "$]", connection);
        command.TableMappings.Add("Table", sheetName);
        dtTable.TableName = sheetName;
        try
        {
            command.Fill(dtTable);
        }
        catch (Exception)
        {
            throw new Exception("Problem in Reading data from " + sheetName.ToString());
        }
        return dtTable;
    }    

更新: 我使用的excel公式:

自定义类型:“Index =”0 细胞中的forula:= RANDBETWEEN(20,80)

细胞价值:指数= 36。 但是当我从Oledb C sharp读书时,它只需要36个。

0 个答案:

没有答案