我EXCEL里有时间数据,如6:53:06,一输入到stringgrid中,就变成了.286875,
18:45:00,输进去,就成了.78125,貌似是当前时间除以24得到的,但是前面又少个0。但是日期读进去,还是正常的。我能不能不让它显示为小数,而直接以时间正常显示出来。我从Excel里读出的数据类型,怎么都为vardispatch?

解决方案 »

  1.   

    excel里面,列的格式选择文本
      

  2.   

    时间是浮点,需要formatdatetime(...)转为字符串
      

  3.   

    formatdatetime('hh:nn:ss',ExcelWorksheet1.Cells.Item[1,2]);
    Label2.Caption:= ExcelWorksheet1.Cells.Item[1,2];还是显示为小数。
      

  4.   

    现在主要是EXCEL里读出来的数据都为VARdispatch类型,不好判断,如果能判断出是时间类型,我直接用timetostr()就可以了。就是不好判断。
      

  5.   

    看下读过来的列字段为什么类型的,如果是date类型的,转换下,FormatDateTime('yyyy-mm-dd hh:ss:mm',Date);
      

  6.   

    我EXCEL里有日期,时间,数字,读过来全部为VARdispatch类型,不好判断做转换
      

  7.   

    if ExcelWorksheet1.Cells.Item[1,2].NumberFormatLocal='?' then ...
    ?处时间类型填什么?只知道文本是\@