【发布时间】:2017-02-07 14:56:53
【问题描述】:
我正在尝试读取一个 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=Text”添加到连接字符串。
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);
这并没有帮助。
【问题讨论】: