MSHFlexGrid中的数据导出为Excel

 

    在机房收费系统中,需要查询充值金额。选择好日期段,点“查询”即在MSHFlexGrid(在这里,此控件命名为:MSHFGRecharge_Records)控件中显示信息(看下图——图1)。那如何将将显示出的信息导出为Excel呢?


 图1

导出方法(大体思路):

1.引用excel对象:MicrosoftExcel 14.0 Ojbect Library

2.创建Application对象:SetxlsApp = CreateObject("Excel.Application")

3.使用Application及其子对象:将mshflexgrid中的记录对应的导出到excel中

4.关闭Application对象:Set xlsApp = Nothing

 

代码部分

Private Sub cmdTo_Excel_Click()
    Dim xlsApp As Excel.Application     '存储所创建的EXCEL对象
    Dim xlsBook As Excel.Workbook       '存储所创建的EXCEL工件簿文件
    Dim xlsSheet As Excel.Worksheet     '存储所设置的活动工作表
    Dim intForRow As Integer            'for循环语句中的循环变量,用于控制行
    Dim intForCol As Integer            'for循环语句中的循环变量,用于控制列
 
    Set xlsApp =CreateObject("Excel.Application")       '创建EXCEL对象
    Set xlsBook = xlsApp.Workbooks.Add                  '新建EXCEL工件簿文件
    Set xlsSheet = xlsBook.Worksheets(1)                '设置活动工作表
 
    '把表格中的数据写入Excel对象中
    For intForRow = 0 To MSHFGRecharge_Records.Rows - 1
        For intForCol = 0 To MSHFGRecharge_Records.Cols - 1
            If intForCol = 0 Then       '第一行为学号,让其以字符形式显示,否则学号中前面的“0”就不显示
                xlsSheet.Cells(intForRow + 1,intForCol + 1) = "'" &MSHFGRecharge_Records.TextMatrix(intForRow, intForCol)
            Else
                xlsSheet.Cells(intForRow + 1,intForCol + 1) = MSHFGRecharge_Records.TextMatrix(intForRow, intForCol)
            End If
        Next intForCol
    Next intForRow
 
    xlsApp.Visible = True                               '显示Excel
    Set xlsApp = Nothing                                '交还控制给Excel
End Sub

 注意

    看第一张图,卡号中有以0开头的。如果直接把表格中的数据导出到Excel中,卡号中的0就不会显示(见2)。说明,默认导出的为非字符型格式,这就相当于,直接在Excel的单元格中输入数字,默认为数值型。那如何显示0呢?当然得转成字符形式。因此,上方代码,For循环语句中,用一个“If”语句进行选择:只要是首行的数据,就在前面加一个英文的单引号“'”。从而在Excel中,首列单元格中数据转成了字符型,消失的0奇迹般再现(见图3)!


   图2

 

   图3

 

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 25
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 25
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值