![](/img/trans.png)
[英]How I can show/fetch Excel data from date to date in datagridview in C# .NET
[英]Date changed into number when i fetch value from excel
我有一个包含很多字段的Excel文件。 我使用数据集存储从此excel文件获取的数据。 在Excel工作表中,我有一个日期列设置为正确的格式。 但是,当检索到该格式时,该格式将更改为数据集中的数字。
我不知道这个问题的原因。
Excel值:2015年1月12日,在数据集中更改为42016。
任何指向此问题的指针将不胜感激。
我的代码是
private static DataSet GetExcelDataAsDataSet(string path)
{
return GetExcelDataReader(path).AsDataSet();
}
private static IExcelDataReader GetExcelDataReader(string path)
{
FileStream stream = System.IO.File.Open(path, FileMode.Open, FileAccess.Read);
IExcelDataReader excelReader = ExcelReaderFactory.CreateOpenXmlReader(stream);
var data = excelReader.ResultsCount;
DataSet result = excelReader.AsDataSet();
excelReader.IsFirstRowAsColumnNames = true;
return excelReader;
}
就像在这个答案中解释的那样,它和使用一样简单:
public static DateTime FromExcelSerialDate(int SerialDate)
{
if (SerialDate > 59) SerialDate -= 1; //Excel/Lotus 2/29/1900 bug
return new DateTime(1899, 12, 31).AddDays(SerialDate);
}
您得到的数字是自1900年1月1日以来经过的天数,因此该函数就是您的答案:)
您还可以使用DateTime dt = DateTime.FromOADate(NUMBER);
而且我认为从答案中提取出来会更好。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.