vb中将flexgrid表中数据导出至Execel及其相关知识

在学习SQL时,我们就接触到数据的导入和导出,现在我们刚做完机房收费系统,接触到了将数据导出至EXCEL表中,我就来简单的介绍一下我实现它的方法。

由于在此系统中,我们要导出多次EXCEL数据,所以我将他们共同的地方进行PUBLIC声明,到时候可以直接进行调用!

1、事先,我们必须在对EXCEL进行引用如图:



Public Sub ToExcel(flexgrid As MSHFlexGrid) '声明一个ToExcel函数
    
'定义声明
    Dim xlsApp As Excel.Application      
    Dim xlsBook As Excel.Workbook
    Dim xlsSheet As Excel.Worksheet
    Dim listrst()
    
    '实例化
    On Error Resume Next
    Set xlsApp = New Excel.Application
    Set xlsBook = xlsApp.Workbooks.Add
    Set xlsSheet = xlsBook.ActiveSheet
    
    
    Dim introws As Long
    Dim intcols As Long
   
    
    'introws,intcols代表flexgrid表中的行和列
    introws = flexgrid.Rows
    intcols = flexgrid.Cols
    
    '重新声明数组表示Excel表中的行和列分别等于被导出表中的行和列
    ReDim listrst(introws, intcols)
     
     
    For i = 0 To flexgrid.Rows - 1
        For j = 0 To flexgrid.Cols - 1
            listrst(i, j) = Trim(flexgrid.TextMatrix(i, j))  '各行和列的数据对应相等
        Next j
    Next i
    
    DoEvents   'doevents用来转让控制权,将其转让给操作系统进行执行
    With xlsSheet
        xlsApp.Intersect(.Range(.Rows(1), .Rows(introws)), .Range(.Columns(1), .Columns(intcols))).Value = listrst
    End With
    
    xlsApp.Visible = True
    xlsApp.Interactive = True
End Sub



1:对于intersect这个函数有以下解释:

返回一个range对象,此对象代表两个或多个范围重叠的矩形区域。

expression.Intersect(Arg1, Arg2, ...)expression   可选。该表达式返回一个Application对象。

Arg1, Arg2, ...   Range 类型,必需。重叠的区域。必须指定至少两个 Range对象。


2:range:range() 函数创建并返回一个包含指定范围的元素的数组

可用 Range(arg)(其中 arg 为区域名称)来返回代表单个单元格或单元格区域的 Range 对象。

具体参数的含义如下:

range() 函数创建并返回一个包含指定范围的元素的数组。

语法

range(first,second,step)
参数 描述
first 必需。规定数组元素的最小值。
second 必需。规定数组元素的最大值。
step

可选。规定元素之间的步进制。默认是 1。


通过以上知识,我们不难理解下面这句代码的含义了吧!
xlsApp.Intersect(.Range(.Rows(1), .Rows(introws)), .Range(.Columns(1), .Columns(intcols))).Value = listrst



  • 2
    点赞
  • 1
    收藏
  • 打赏
    打赏
  • 9
    评论
贡献给热爱学习的人 (示例中含有详细的代码及说明) 1、生成默认的基本对话框工程,工程名为ProjectX。 2、添加FlexGrid1控件:Ctrl+W打开类向导,工程->增加到工程->Components and Contols->Registered ActiveX Controls->Microsoft FlexGrid Control ,version6.0 ->Insert 3、为IDC_DATAGRID1关联变量m_FlexGrid1 4、Ctrl+W打开类向导,新建一个类,选择从Type Library添加。如果是Office 2003,添加的是Office安装路径下的Excel.exe (在Office 2000环境下添加的应该是Excel9.OLB) 。在弹出的Confirm Classes里选择_Application,Workbooks,_Workbook,Worksheets ,_Worksheet,Range ,Font 这几个类,并确定新生成的.CPP和.h文件的名称为Excel.cpp和Excel.h,然后确定。 5、添加类CColorButton:Ctrl+W打开类向导->点击Member Variables->Add Class->new->name:CColorButton Base Class:CButton->Ok 6、添加类CColorButton的成员函数DrawIten和PreSubclssWindow 7、添加ColorButton.h和ColorButton.cpp的实现代码 8、"导出Excel"按钮关联类型为CColorButton的变量(Vaiable Type:CColorButton):m_btn1 9、右键点击ProjectX resources->引入:文件类型选择所有文件,依次引入5个按钮位图,程序将自动添加5个位图资源,然后设置位图资源的属性。 10、在stdafx.h中添加导入ADO库 11、在ProjectXDlg.h中添加智能指针变量等。 12、在ProjectXDlg.cpp中添加头文件引用:#include "Excel.h" 13、在ProjectXDlg.cpp的OnInitDialog()中添加初始化代码等。 14、双击导出Excel按钮,添加单击响应函数及功能代码。

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

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:程序猿惹谁了 设计师:我叫白小胖 返回首页
评论 9

打赏作者

little_color

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值