在查询获取excel表中的内容之后,excel表中有时间类型的列,但是获取到得得值确实39688之类的数据,这里改怎么转换呢?
比如说列中的值是2008-08-08 这里应该也得到2008-08-08 excel中是2010年6月 这边也应该为2010年6月

解决方案 »

  1.   

    设置excel单元格格式
    mySheet.Cells(1,9).NumberFormatLocal = "@"  
    Excel.Range r = mySheet.get_Range(mySheet.Cells[1, 1], mySheet.Cells[1,3]);  
    r.NumberFormat = "@";  
    r.NumberFormat = "yyyy-MM-dd";
      

  2.   

    从EXCEL中读取文本,数值型数据都很简单,EXCEL没有做其他转换,
    可是读取日期数据就出现了一个问题:
    EXCEL保存日期数据实际上存放的是时间戳,从1900年开始算起。
    也就是说 1900-1-1 在EXCEL中表示为 1 。
    OK,明白了这个原理之后就可以开始操作了 :static readonly DateTime march1st1900 = new DateTime(1900, 03, 01);
    static readonly DateTime december31st1899 = new DateTime(1899, 12, 31);
    static readonly TimeSpan after1stMarchAdjustment = new TimeSpan(1, 0, 0, 0);public static DateTime ConvertExcelDateToDate(string excelDate)
    {
         TimeSpan ts = TimeSpan.Parse(excelDate);
         DateTime dt = december31st1899+ts;
         if (dt >= march1st1900)
         {
               return dt - after1stMarchAdjustment;
          }
         return dt;
    }