我用VSflexgrid 8.0 Excel 2002
vfg.SaveGrid App.Path & "\xls\销售发货单据列表.xls", flexFileExcel, SaveExcelSettings.flexXLSaveFixedCells
存数据时出现两个问题1存为excel文件后,打开,预览时excel出现错误?这是为什么?2怎样保存为excel文件后,使excel也带有表格线?

解决方案 »

  1.   

    Excel2002我没试过,2000是可以的。
    vsflexgrid导出为Excel文件的功能只有这么大,你无法要求它做得更好。
    为这个问题我研究了好长时间,最后的结论是:
    自己做一个接口,专门用来从vsflexgrid导出为Excel文件
      

  2.   

    我存成excel的时候,,
    因为vsflexgird表格的行,我设成不同颜色间隔行,,所以导出excel后也是这样的..当点打印预览时excel出现错误~~不知为何?试了N次依然出错.
      

  3.   

    双击XLS调用EXCEL打开该文件后存在时一般会出错
    但先打开EXCEL后再从菜单中打开该XLS文件保存时不出错
    不知是什么原因
      

  4.   

    导出EXCEL的功能因为兼容性的问题,并不好用。
    偶现在都在导出成文本格式的,文件名带.xls扩展名,这样用EXCEL打开时,会有导入界面出现,可以解决一些文本和数字的问题。
      

  5.   

    vbangle
    按你的做法还是不能解决.问题依然.
      

  6.   

    會不會是你的Excel有問題? 重新安裝試試.
      

  7.   

    不会是Excel问题,楼主的问题我遇到过,一预览excel就完蛋了,我的是excel2003,如果把导出的这个excel复制-粘贴到一个新建的excel里,则没问题,但是这个新的excel文件将丢失格式。我认为这是vsgrid的bug
      

  8.   

    我的一个打印实例,包含了标题的设置
    '执行打印
    Private Sub OnPrint()
        Dim Total As Range
        Dim RangeCells As String
        Dim tableTitle As String
        
        Dim VBExcel As Excel.Application
        Dim xlbook As Excel.Workbook
        Dim xlsheet As Excel.Worksheet
        
        Dim i%, j%, k%
        Dim rows As Long
        Dim rs As ADODB.Recordset
        On Error GoTo LErr
        
        Screen.MousePointer = vbHourglass
        If vsHBJL.rows <= 1 Then
            MsgBox "没有需要打印的数据!", vbInformation, "提示"
            Screen.MousePointer = vbDefault
            Exit Sub
        End If
        
        rows = vsHBJL.rows - 1
        
        vsHBJL.SaveGrid App.Path & "\VPData.xls", flexFileTabText, True
        Set VBExcel = CreateObject("excel.application")
        
        Set xlbook = VBExcel.Workbooks.Open(App.Path & "\VPData.xls")
        Set xlsheet = xlbook.Worksheets(1)
        
        xlsheet.Activate
        xlsheet.rows(1).Insert
        xlsheet.rows(1).Insert
        
        RangeCells = "A" + Trim(1) + ":" + "H" + Trim(1)
        Set Total = xlsheet.Range(RangeCells)
        With Total
            .Merge
            .Font.Bold = True
            .Font.Size = 14
            .RowHeight = 25
            .HorizontalAlignment = xlHAlignCenter
            .VerticalAlignment = xlHAlignCenter
            .Value = z & "换表记录列表"
        End With
            RangeCells = "A" + Trim(2) + ":" + "H" + Trim(2)
        Set Total = xlsheet.Range(RangeCells)
        With Total
            .Merge
            .Font.Size = 9
            .HorizontalAlignment = xlHAlignRight
            .Value = "打印日期:" & Format(Now, "yyyy年mm月dd日")
            
        End With
        
        With xlsheet
            
            .Range("A" + Trim(3) + ":" + "H" + Trim(rows + 3)).Borders.LineStyle = xlContinuous
            .Range("A3" + ":" + "H3").HorizontalAlignment = xlHAlignCenter
            .Range("A3" + ":" + "H3").Font.Bold = True
            .Range("A4" + ":" + "H" + Trim(rows + 3)).HorizontalAlignment = xlHAlignCenter
            .Range("A3").ColumnWidth = 6
            .Range("B3").ColumnWidth = 16
            .Range("C3" + ":" + "H3").ColumnWidth = 8
            .Range("A3" + ":" + "H" + Trim(rows + 3)).Font.Size = 9
            .PageSetup.PaperSize = xlPaperA4
            .PageSetup.Orientation = xlLandscape
            .PageSetup.CenterHorizontally = True
            .PageSetup.CenterFooter = "第&P页,共&N页"
            .PageSetup.PrintTitleRows = "$A$1:$R$4"
        End With
        
        VBExcel.Visible = True
        Screen.MousePointer = vbDefault
        Exit Sub
    LErr:
        
        Set xlsheet = Nothing
        Set xlbook = Nothing
        Set VBExcel = Nothing
        Screen.MousePointer = vbDefault
    End Sub