我正在將一個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?如果是這種情況,請參閱下面的答案。 –