我正在将一个Excel工作表加载到在WPF中的DataGrid
控件中。 在Excel工作表的单元格中,我有一个值1.6.2011这是一个日期。在DataGrid中查看Excel日期单元格内容的问题
如果我加载这个Excel用这种方法文件:
private static DataSet LoadExcelFile(string file,string sheetName)
{
string connString= "Provider=Microsoft.Jet.OLEDB.4.0;" +
"Data Source=" + file + ";" +
"Extended Properties=Excel 8.0;";
var oledbConn = new OleDbConnection(connString);
try
{
// Open connection
oledbConn.Open();
// Create OleDbCommand object and select data from worksheet Sheet1
var cmd = new OleDbCommand("SELECT * FROM ["+sheetName+"$]", oledbConn);
// Create new OleDbDataAdapter
var oleda = new OleDbDataAdapter();
oleda.SelectCommand = cmd;
// Create a DataSet which will hold the data extracted from the worksheet.
var ds = new DataSet();
// Fill the DataSet from the data extracted from the worksheet.
oleda.Fill(ds, "Employees");
return ds;
}
catch
{
throw new Exception();
}
finally
{
// Close connection
oledbConn.Close();
}
}
然后添加DataSet
到DataGrid
:
Dps.ItemsSource = ExcelFile.Tables[0].DefaultView;
则问题是在Excel工作表该值是1- 6-2001但在WPF DataGrid
它被视为40695
。
我做错了什么?我认为它是由Excel中的单元格格式引起的。 Excel中单元格的数据类型为DATE
。我认为这是问题的根源。如何解决它?
删除该try/catch块。我无法想象捕捉异常并抛出一个新的空无类型'Exception'的好理由。你失去了原始异常原因的所有知识,并且你的程序仍然崩溃。 –
不应该是6-1-2011?如果是这种情况,请参阅下面的答案。 –