我有一个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个。