xlSheet.Cells(r, 2).NumberFormatLocal = "yyyy""-""m""-""d""-"""
 xlSheet.Cells(r, 2) = rs!检查日期excel还是显示一串数字,用format也不行

解决方案 »

  1.   

    建议楼主在代码里面拿到 rs!检查日期 format后用字符串的格式写到excel单元格中~
      

  2.   

    用NumberFormatLocal  
    NumberFormatLocal   =   "yyyy""年""m""月""d""日"""参考:http://msdn.microsoft.com/zh-cn/library/microsoft.office.tools.excel.namedrange.numberformatlocal(VS.80).aspx
      

  3.   

    Excel的日期型是从1990年1月1日开始计算的,即1990-1-1存储时为1,1990-1-2存储时为2,依次类推,最大值为9999-12-31,当RS!检查日期的值超出这个范围时,数据类型可能为Double,也可能为String,比如20080506在Excel里会被转换成Double,因为它大于2958465,即大于日期9999-12-31,此时,LZ的格式当然会失效,此外,当Rs!检查日期里以小数点作间隔时,如2008.05.06,依然会转换成Double,而不是Data.
    要想成功转换,建议先使用Format格式化RS!检查日期的值,如果以是小数点为间隔,还要先使用replace(rs!检查日期,".","-")替换掉小数点,使其成为一个标准的日期字符串。
      

  4.   

    xlSheet.Cells(r, 2).NumberFormatLocal = "yyyy-mm-dd" 
      

  5.   

    xlSheet.Cells(r, 2) = CDate(rs!检查日期) '先保证赋的值是日期类型的,否则免谈 
      

  6.   

    '你这应个是Excel显示时的显示格式的问题
    xlsheet.NumberFormat = "yyyy-mm-dd"