读取Execl数据到Datatable或DataSet时 日期单元格出现乱码的解决方案

    //Execl某单元格数据为 2012-1-10 读取到DataTable变为40918 不是正确的2012-1-10

其实excel在转换格式的时候就自动把日期变成数字了,

那这个数字是怎么来的呢 ? 如果你把日期改成1900年1月1日,那么你可以看到他的转换结果是1,以此类推,39902是哪一天就明白了吧。


    //解决方法一:
  
  //strValue是你的日期40918 值带进来
    public static string getDateStr(string strValue)
    {
        int i = Convert.ToInt32(strValue);
        DateTime d1 = Convert.ToDateTime("1900-1-1");
        DateTime d2 = d1.AddDays(i - 2);
        string strTemp = d2.ToString("d");


        return strTemp;
    }


  //解决方法二:

    

DateTime.FromOADate(Convert.ToInt32(strValue)).ToString("d");

转载地址:http://blog.csdn.net/smartsmile2012/article/details/8166744

参考地址:http://www.cnblogs.com/diony/archive/2011/09/08/2171133.html

猜你喜欢

转载自blog.csdn.net/uianqian/article/details/8540412
今日推荐