SYSTEMTIME st;  
         else if(vResult.vt == VT_DATE) //时间格式
 {

 VariantTimeToSystemTime(vResult.date, &st);
                   strh.Format("%2d",st.wHour);
 strm.Format("%2d",st.wMinute);
 strs.Format("%2d",st.wSecond);
 str = strh+":"+strm+":"+strs;
}
我再ondraw()里面TEXTOUT  但是输出的不是 时间(03:30:15) 而是小数0.5423142;我再里查了下,时间的常规类型显示都是这样子的,但是我定义EXCEL的时候是设定的时间类型的。为什么会这个样子,谁可以帮我解决下!

解决方案 »

  1.   


    case VT_DATE: //日期型
    {
    DATE dt = var.date;
    COleDateTime da = COleDateTime(dt); 
    strValue = da.Format("%Y-%m-%d %H:%M:%S");
    }
    break;
      

  2.   


    case VT_DECIMAL: //小数
    //strValue.Format("%.8f", (double)var);
    strValue.Format("%I64d", var.ullVal);
    break;
      

  3.   

    textout() 的结果还是小数啊 我按照2楼给的做了一下!
      

  4.   

    虽然我再EXCEL里面把数据类型都改为了时间类型   但是VC中TEXTOUT()显示的是EXCEL中文本类型显示的内容!
      

  5.   

    COleDateTime dt = vResult.date;
    CString strDateTime = dt.Format("%y-%m-%d %H:%M:%S");   // 2009-08-15 15:33:21
    pDC->TextOut(100, 100, strDateTime);