有几万条excel数据,在excel中如果设置单元格格式为日期格式,就可以显示正确为“2009-01-01”这样的格式,但是如果设置为文本的话就显示为39814这样的数字。有没有办法让这一列既为文本类型又可以显示为“2009-01-01”因为我主要是要把excel的数据读到C#的Datatable中。目前我读到datatable中也显示为39814,我希望能在datatable中显示为“2009-01-01”

解决方案 »

  1.   

    你是采用 OLEDB 来读取Excel的么? OLEDB 读取Excel是会按照单元格所设置的格式读取的,金额、带千位符的数字、日期都是如此。
      

  2.   

    不是OLEDB的方式,是Excel.Workbook 类提供的方法读取的。请问我该怎么做呢?
      

  3.   

    还有,我通过string date = DateTime.FromOADate(Convert.ToInt32(sqlconsume_time)).ToString("yyyy-mm-dd")
    这样的函数来转换39814  变成时间格式,转换的结果是:2009-00-01   ,而正确的应该是2009-01-01 ,请问这是什么问题?
      

  4.   

    是不是要用 yyyy-MM-dd ,或 yyyy-MM-DD ,仅是猜测,因为 mm 可能是表示分钟,你试一下咯