本帖最后由 yeyerl 于 2012-03-23 16:38:39 编辑

解决方案 »

  1.   

    你这个读取方法不是返回的是Dataset么?调试DataSet的数据,直接绑定DataGridView不就可以了?
      

  2.   


    可是到这里:newRow[c - 1] = ((Excel.Range)ws.Cells[r, c]).Value2;
    它就直接返回的是文本格式了,不是时间格式,我在DataSet里面怎么修改值呢
      

  3.   


    到这里就直接返回的是文本格式了,不是时间格式:newRow[c - 1] = ((Excel.Range)ws.Cells[r, c]).Value2;
      

  4.   

    你Excel直接把时间格式设置成文本试试吧
    参考一下这个
    http://www.cnblogs.com/ghypnus/archive/2012/03/23/2413474.html
    希望对你有帮助
      

  5.   

    那个改成文本格式了也不行。
    我的意思是让显示的格式为正常Excel中显示的格式,不要被转换。
      

  6.   

    现在我用newRow[c - 1] = ((Excel.Range)ws.Cells[r, c]).text解决了问题,但新的问题又来了,比如显示时间内容太长的单元格的值显示到DataGridView中会全部是“#####”
      

  7.   

    Convert.ToString(newRow[c - 1] = ((Excel.Range)ws.Cells[r, c]).text).ToString("yyyyMMdd");