Roh*_*han 5 .net c# format excel date
我一直在尝试从excel文件中读取数据.它已经成功,但我遇到了一个问题.只要单元格的格式和单元格中输入的数据不匹配,我就会得到空数据
例如
如果数据单元格被格式化为日期 - 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");
Run Code Online (Sandbox Code Playgroud)
您可以将连接字符串更改为
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+Server.MapPath("../Portal_Docs/UploadDocs/"+filename+"")+";Extended Properties=Excel 8.0;HDR=Yes;IMEX=1"
Run Code Online (Sandbox Code Playgroud)
HDR=是;IMEX=1
告诉 OldDb 驱动程序列中的数据采用不同的格式。
归档时间: |
|
查看次数: |
1973 次 |
最近记录: |