导出excel的基础问题请教,谢谢先.
-----------
我发现,将msflexgrid中的内容导成excel时,方法是不通过记录集,而是从msflexgrid一格一格的复制到excel中,有一个问题就是解决不了.
比如一个列中是四位的编码,当然编码都是数字,[在数据库中是字符型的,不是数值型],形如:0043,7892,0002 这种形式的四位编码,可是导到excel中时,它就变成数字型了.比如0043变成43,0002变成2了,通过反复测试,我知道了,只要一个单元格中都是数字,excel就会认为那是一个数值而不是字符,可是我想导过去以后,还是原来的四位字符,不让excel自动的转换,可以实现吗?

解决方案 »

  1.   

    将单元格设置为文本就可以了,代码如下:    Dim xlsApp As New Excel.Application
        Dim xlsBok As Excel.Workbook
        Dim xlsSht As Excel.Worksheet    Set xlsBok = xlsApp.Workbooks.Add
        Set xlsSht = xlsBok.Worksheets(1)
        
        xlsSht.Range("A1").Select
        xlsApp.Selection.NumberFormatLocal = "@"
        xlsSht.Cells(1, 1) = "012345"
        xlsApp.Visible = True
        Set xlsApp = Nothing╭═══════════════════╮
    ║ 免费的源码、工具网站,欢迎大家访问!║
    ║ http://www.j2soft.cn/        ║
    ╰═══════════════════╯
      

  2.   

    dim xlapp as Excel.Application
            Set xlapp = New Excel.Application
           xlapp.Visible = False
            Set xlbook = xlapp.Workbooks.Add
            Set xlsheet = xlbook.Worksheets(1)
            If Val(xlapp.Application.Version) >= 8 Then
                Set xlsheet = xlapp.ActiveSheet
            Else
                Set xlsheet = xlapp
            End If
            For i = 1 To msflexgrid.rows - 1
                For j = 1 To msflexgrid.cols - 1
                     xlsheet.Cells(i, j) = "'"&Trim(msflexgrid.TextMatrix(i, j))
                Next j
            Next i
            xlapp.ActiveWorkbook.SaveAs (App.path & "aa.xls")
    set xlsheet = nothing
    xlbook .close
    set xlbook = nothing xlapp.quit
    set xlapp = nothing 
      

  3.   

    If Val(xlapp.Application.Version) >= 8 Then
                Set xlsheet = xlapp.ActiveSheet
            Else
                Set xlsheet = xlapp
            End If
    ---------------------------
    谢谢,再问一下,加这种判断用处何在呀?为何版本8以上的处理不一样呢?
    还有:版本8对应的office版本是多少呀?
      

  4.   

    If Val(xlapp.Application.Version) >= 8 Then
                Set xlsheet = xlapp.ActiveSheet
            Else
                Set xlsheet = xlapp
            End If
    ---------------------------
    谢谢,再问一下,加这种判断用处何在呀?为何版本8以上的处理不一样呢?
    还有:版本8对应的office版本是多少呀?
      

  5.   

    office 2000版本是9,再之前一个版本是8了 可能是office97吧