加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

[VB版机房]MSGFLEXGRID控件中的数据导出到excel

发布时间:2020-12-17 07:44:35 所属栏目:百科 来源:网络整理
导读:机房收费进行到MSHFLEXGEID控件中的内容写入excel中,遇到了问题下面将问题进行记录。 首先导出到excel中需要引用microsoft Excel 15.0 object Library,开始我把VB-工程引用列表中的内容上下翻了三遍没有找到这个控件,于是上网找。功夫不负有心人,终于找

机房收费进行到MSHFLEXGEID控件中的内容写入excel中,遇到了问题下面将问题进行记录。

首先导出到excel中需要引用microsoft Excel 15.0 object Library,开始我把VB-工程引用列表中的内容上下翻了三遍没有找到这个控件,于是上网找。功夫不负有心人,终于找到了,原来机房电脑装的是office2013,VB6.0是很老的编程语言根本不可能把它封装起来,但是VB6.0提供了浏览窗口,可以手动的添加可执文件和.dll文件。单击浏览在office的默认按照路径找到Excel.EXE文件添加,这样就能引用上面的功能。

下面是Excel.exe的寻找路径。



另外需要用到commondiallog控件,添加方式如下:

1.工程 - 部件 - 控件 在里面选择commondialog 在窗体中添加即可。

由于整个过程有很多窗体用到了导出到excel功能,所以把这个过程封装到模块中,及优化了代码增加可读性,而且一旦遇到错误可以非常方便的找到源头。

下面是主体的代码

Public Function ExportFlexDataToExcel(flex As MSHFlexGrid,g_CommonDialog As CommonDialog)
    
   On Error GoTo ErrHandler
  
  Dim xlapp As Object
  
  Dim xlBook As Object
  
  Dim Rows As Integer,Cols As Integer
  
  Dim iRow As Integer,hCol As Integer,iCol As Integer
  
  Dim New_Col As Boolean
  
  Dim New_Column As Boolean
   
  
  g_CommonDialog.CancelError = True
  
  On Error GoTo ErrHandler
  
  ' 设置标志
  
  g_CommonDialog.Flags = cdlOFNHideReadOnly
  
  ' 设置过滤器
  
  g_CommonDialog.Filter = "All Files (*.*)|*.*|Excel Files" & "(*.xls)|*.xls|Batch Files (*.bat)|*.bat"
  
  ' 指定缺省的过滤器
  
  g_CommonDialog.FilterIndex = 2
  
  ' 显示“打开”对话框
  
  g_CommonDialog.ShowSave
      
  If flex.Rows <= 1 Then       '判断表格中是否有数据
  
         MsgBox "没有数据!",vbInformation,"警告"
  
        Exit Function
  End If
  
   '打开Excel,添加工作簿
  
  Set xlapp = CreateObject("Excel.Application")
  
  Set xlBook = xlapp.Workbooks.Add
  
  xlapp.Visible = False
  
'遍历表格中的记录,传递到Excel中
  
  With flex
  
    Rows = .Rows
  
    Cols = .Cols
  
    iRow = 0
  
    iCol = 1
  
    For hCol = 0 To Cols - 1
  
       For iRow = 1 To Rows
'获取表格中值,传递到Excel单元格中
          xlapp.Cells(iRow,iCol).Value = .TextMatrix(iRow - 1,hCol)
  
       Next iRow
  
       iCol = iCol + 1
  
    Next hCol
  
 End With
  
   '设置Excel的属性
  
  With xlapp
  
  .Rows(1).Font.Bold = True
  
  .Cells.Select
  
  .Columns.AutoFit
  
  .Cells(1,1).Select
  
' .Application.Visible = True
  
  End With
  
   '获取要保存文件的文件名,选择保存路径
  
  xlBook.SaveAs (g_CommonDialog.FileName)
  
  xlapp.Application.Visible = True
  
  xlapp.DisplayAlerts = False
  
  Set xlapp = Nothing '"交还控制给Excel
  
  Set xlBook = Nothing
  
  MsgBox "数据已经导出到Excel中。","成功"
  
 Exit Function
      
  
ErrHandler:
  
  ' 用户按了“取消”按钮
  If Err.Number <> 32755 Then
  MsgBox "数据导出失败!",vbCritical,"警告"
  End If
End Function
每一次使用的时候需要调用功能

调用方式如下:

Call ExportFlexDataToExcel(MSHFlexGrid1,CommonDialog1)

变量的内容前面的一个是mshflexgrid控件的名称。后面的是自己添加的commondialog控件的名称。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读