一、背景
机房收费系统中有很多地方用到了“导出Excel表”这个功能,那么,怎么导出呢?
二、导出Excel表
1、电脑安装office
2、引用
之前已经有一篇博客介绍过如何引用控件(点我查看)
3、实现VB与Excel的交互
方法(1)
直接使用代码实现交互。
Private Sub cmdExport_Click()
'导出为Excel表格
Dim introws As Integer '用作循环,表示MSHFlexGrid的总行数
Dim intcols As Integer '用作循环,表示MSHFlexGrid的总列数
Dim XlsApp As excel.Application '定义excel对象
Dim XlsSheet As excel.Worksheet '定义excel的表
Dim XlsBook As excel.Workbook '定义excel工作簿
Set XlsApp = CreatObject("Excel.Application") '实例化Excel对象
Set XlsBook = XlsApp.Workbooks.Add '加载工作簿
Set XlsSheet = XlsBook.Worksheets(1) '创建工作表
'循环,导出MSHFlex1中所有记录到Excel
For introws = 0 To MSHFlexGrid1.Rows - 1
For intcols = 0 To MSHFlexGrid1.Cols - 1
If intcols = 0 Then '第一列为学号,将其转换成字符串格式,否则首位的0无法显示
XlsSheet.Cells(introws + 1, intcols + 1) = "'" & MSHFlexGrid1.TextMatrix(introws, intcols)
Else
SlsSheet.Cells(introws + 1, intcols + 1) = MSHFlexGrid1.TextMatrix(introws, intcols)
End If
Next intcols
Next introws
'释放对象
XlsApp.Visible = True
Set SlsApp = Nothing
End Sub
方法(2)
我们已经知道了有hin多窗体要用到这个功能,那么这些代码也是需要多次被复制粘贴的。可能有的人已
经觉得这样挺方便了,几乎没有技术含量了。但是,作为更高效的人,应该想到更加简便的方法,不将
就。没错,我们可以利用模块的功能。把代码写进公共模块中,需要的时候直接用简单几行代码调用
(Call Export(MSHFlexGrid1) )就可以了。
以下是代码:(与直接导出的代码有细微区别,请自己发现吧。)
Public Function Export(myGrid As MSHFlexGrid)
'导出为Excel表格
Dim introws As Integer '用做循环,表示MSHFlexGrid的总行数
Dim intcols As Integer '用做循环,表示MSHFlexGrid的总列数
Dim XlsApp As excel.Application '定义Excel对象
Dim XlsSheet As excel.Worksheet '定义Excel的表
Dim XlsBook As excel.Workbook '定义Excel的工作簿
If myGrid.Text = "" Then
MsgBox "没有记录!", vbOKOnly, "提示"
Exit Function
End If
Set XlsApp = CreateObject("Excel.Application") '实例化Excel对象
Set XlsBook = XlsApp.Workbooks.Add '加载工作簿
Set XlsSheet = XlsBook.Worksheets(1) '创建工作表
'循环,导出MSHFlex1中的所有记录到Excel
For introws = 0 To myGrid.Rows - 1
For intcols = 0 To myGrid.Cols - 1
If intcols = 0 Then '第一列为学号,将其转换成字符串格式,否则首位的0无法显示
XlsSheet.Cells(introws + 1, intcols + 1) = "'" & myGrid.TextMatrix(introws, intcols)
Else
XlsSheet.Cells(introws + 1, intcols + 1) = myGrid.TextMatrix(introws, intcols)
End If
Next intcols
Next introws
'释放对象
XlsApp.Visible = True
Set XlsApp = Nothing
End Function
(其中,“Export"控件名称,由自己命名即可。)