Я пытался прочитать данные из файла Excel. Это было успешно, но я столкнулся с проблемой. Если формат ячейки и введенные в нее данные не совпадают, я получаю пустые данные
* 1005 например *
Если ячейка данных отформатирована как Дата - dd/mm/yyyy
, а пользователь вводит 13/17/2011
, то формат даты и введенная дата противоречивы, поэтому в Excel появляется пустая ячейка. Только если формат ячейки текстовый, я получаю введенные данные.
Почему в файле excel отображается пустая ячейка, если введенный формат даты не соответствует установленному формату ячейки?
Это код, который читает данные Excel
if(fileEXT.Equals(".xls"))
{
oledbConn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+Server.MapPath("../Portal_Docs/UploadDocs/"+filename+"")+";Extended Properties=Excel 8.0");
}
else if(fileEXT.Equals(".xlsx"))
{
oledbConn = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source="+Server.MapPath("../Portal_Docs/UploadDocs/"+filename+"")+";Extended Properties=\"Excel 12.0;HDR=YES;\"");
}
else if(fileEXT.Equals(".xlsm"))
{
oledbConn = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source="+Server.MapPath("../Portal_Docs/UploadDocs/"+filename+"")+";Extended Properties=Excel 12.0 Macro");
}
oledbConn.Open();
OleDbCommand cmd = new OleDbCommand("SELECT * FROM [Sheet1$]", oledbConn);
OleDbDataAdapter oleda = new OleDbDataAdapter();
oleda.SelectCommand = cmd;
DataSet ds = new DataSet();
oleda.Fill(ds,"LocationDetails");