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

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

概述        机房收费进行到MSHFLEXGEID控件中的内容写入excel中,遇到了问题下面将问题进行记录。 首先导出到excel中需要引用microsoft Excel 15.0 object Library,开始我把VB-工程引用列表中的内容上下翻了三遍没有找到这个控件,于是上网找。功夫不负有心人,终于找到了,原来机房电脑装的是office2013,VB6.0是很老的编程语言根本不可能把它

机房收费进行到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 IfEnd Function
每一次使用的时候需要调用功能

调用方式如下:

Call ExportFlexDataToExcel(MSHFlexGrID1,CommonDialog1)

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

总结

以上是内存溢出为你收集整理的[VB版机房]MSGFLEXGRID控件中的数据导出到excel全部内容,希望文章能够帮你解决[VB版机房]MSGFLEXGRID控件中的数据导出到excel所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1269213.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-08
下一篇 2022-06-08

发表评论

登录后才能评论

评论列表(0条)

保存