在机房收费系统中vb与EXCEL的交换应该算是一个新的知识,之前我们在做学生的时候没有接触过,但是这个EXCEL的导出相对上一篇的报表而言那应该是很简单的了。在此篇博客中将介绍两种方法进行EXCEL的导出。
准备:
我们要想让vb与EXCEL交互成功,我们必须保证电脑上面已经安装office,再就是我们需要做的一件事情就是:工程——属性——Microsoft Excel 14.0 Object Library.
方法一:
通常是我们大家都非常喜欢的一种就是,那个窗体需要,我就在那个窗体编写代码,在第二个窗体需要的时候我们就直接复制 粘贴过去,看到满满的一整个窗体的代码感觉很自豪(我也是这么做的但是被师傅指点了),下面介绍这种方法的代码:
Dim xlsapp As Excel.Application Dim xlsbook As Excel.Workbook Dim xlssheet As Excel.Worksheet Dim i, j As Long Dim mrc As ADODB.Recordset Dim txtSQL As String Dim MsgText As String Set xlsapp = CreateObject("excel.application") '调用execel程序 Set xlsbook = xlsapp.Workbooks.Add '添加工作簿 Set xlssheet = xlsbook.Worksheets(1) '添加工作单元 With xlsapp .Rows(1).Font.Bold = True '表格中字体样式 End With On Error Resume Next '把MSHFlexgrid的内容写入到电子表格中 For i = 0 To MyFlexGrid.Rows For j = 0 To MyFlexGrid.Cols xlssheet.Cells(i + 1, j + 1) = "'" & MyFlexGrid.TextMatrix(i, j) Next Next xlsapp.Visible = True '显示电子表格 Set xlsapp = Nothing '交还控制给Exce
方法二:
当我们有很多窗体中都需要这个功能的时候,我们不能忘了模块的功能,不能重复的复制很多相同的代码,那样显得我们的代码没有技术含量,这样就需要我们在模块中编写一个函数——功能为导出Excel,这样我们需要的时候直接调用就可以了,下面我来接单介绍一下这个函数的代码的编写过程:
'导出Excel Public Sub toexcel(grid1 As MSHFlexGrid) Dim i, j As Integer Dim xl As Object Dim xlwbook As Object Dim xlsheet As Object Set xl = CreateObject("excel.application") Set xlbook = xl.Workbooks.Add xl.Visible = True Set exsheet = xlbook.Worksheets("sheet1") For i = 1 To grid1.Rows For j = 1 To grid1.Cols xlsheet.Cells(i, j) = grid1.TextMatrix(1 - 1, j - 1) Next j Next i End Sub
当我们需要的时候直接 call (myflexgrid) 来实现,就不用大量的重复代码。通过这两种方法,相信读者们会很轻松的把这个功能搞定!