vb与office的数据交互之vb导出Excel

      这两天弄机房收费系统的时候,用到了vb与office数据之间的交互,也就是我们将vb中的MSFlexGrid控件中的数据导出为Excel,这就是 vb与office数据之间的交互的大体步骤如下。

      使用office对象的方法

       1. 引用office对象库。

       2.创建Application(应用程序)对象。

       3.使用Application和其它子对象。

       4.关闭Application对象。

       下面我以MSFlexGrid控件中的数据和记录集对象的数据导出为Excel为例。

      1 首先确保 在工程中引用Microsoft Excel 14.0 Object Library   和  Microsoft ActiveX Data Objects 2.6 Libray

      代码仅供参考

<strong><span style="font-size:18px;"></span></strong><pre name="code" class="html"><strong><span style="font-size:18px;">Private Sub cmd_Click() </span></strong>
    Dim xlsApp As Excel.Application '定义Excel程序
    Dim xlsBook As Excel.Workbook '定义工作簿
    
    Dim xlsSheet As Excel.Worksheet '定义工作表
    Dim i As Long
    Dim j As Long

    Set xlsApp = CreateObject("Excel.Application") '创建应用程序
    Set xlsBook = xlsApp.Workbooks.Add
    Set xlsSheet = xlsBook.Worksheets(1) '设置应用表

    With xlsApp
          .Rows(1).Font.Bold = True
    End With
    '把MSFlexGrid1的内容写入到电子表格中
    For i = 0 To MSFlexGrid1.Rows - 1
        For j = 0 To MSFlexGrid1.Cols - 1
            xlsSheet.Cells(i + 1, j + 1) = "'" & MSFlexGrid1.TextMatrix(i, j)
        Next j
    Next i

    xlsApp.Visible = True '显示电子表格
    xlsSheet.PrintOut preview:=True '进入打印预览页面
    xlsBook.SaveAs App.Path & "\Test.xls" '保存路径和文件名称
    Set xlsApp = Nothing '释放控制权

<strong><span style="font-size:18px;">End Sub</span></strong>

 

     以上的代码是直接进入打印预览界面,如果想直接得到电子表格,可将 xlsSheet.PrintOut preview:=True这行代码

注释掉。

        MSFlexGrid控件中的数据导出为Excel表格的方法有很多,我觉得它们都大同小异,总起来说就是vb先调用Excel,然后再将数据导入进去。

       2 从记录集中导出

<strong><span style="font-size:18px;"><strong><span style="font-size:18px;">   
   Dim i As Integer  
   Dim txtSQL  As String  
   Dim MsgText As String  
   Dim mrc As ADODB.Recordset  
'导出为Excel  
Private Sub cmd_Click()  
    Dim xlapp1 As Excel.Application  
    Dim xlbook1 As Excel.Workbook  
    Dim xlsheet1 As Excel.Worksheet  
  
    Set xlapp1 = CreateObject("Excel.Application")  
    Set xlbook1 = xlapp1.Workbooks.Add  
    Set xlsheet1 = xlbook1.Worksheets(1)  
        '添加字段名  
    
    For i = 0 To mrc.Fields.Count - 1  
        xlsheet1.Cells(1, i + 1) = mrc.Fields(i).Name  
    Next i  
  
    mrc.MoveFirst  
    xlsheet1.Range("A2").CopyFromRecordset mrc      
    mrc.Close  
    Set mrc = Nothing  
    xlapp1.Visible = True  
    Set xlapp1 = Nothing  
End Sub

</span></strong>

  3 将函数定义在模块中,然后在窗体中再调用它,这样不仅省时间省代码,还有利于提高系统的稳定性。

<strong><span style="font-size:18px;"><strong><span style="font-size:18px;">'MSHFlexGrid控件导出到Excel
Public Sub OutDataToExcel(Flex As MSFlexGrid) '导出至Excel
      Dim s As String
      Dim i As Integer
      Dim j As Integer
      Dim k As Integer
      
On Error GoTo Ert
      Dim Excelapp As Excel.Application       ’定义并引用Excel程序
      Set Excelapp = New Excel.Application
      
On Error Resume Next
      DoEvents
      Excelapp.SheetsInNewWorkbook = 1
      Excelapp.Workbooks.Add
      Excelapp.ActiveSheet.Cells(1, 3) = s
      Excelapp.Range("C1").Select
      Excelapp.Selection.Font.FontStyle = "Bold"
      Excelapp.Selection.Font.Size = 16
      With Flex                                '将数据导入到Excel中
      k = .Rows
      For i = 0 To k - 1
         For j = 0 To .Cols - 1
             DoEvents
             Excelapp.ActiveSheet.Cells(3 + i, j + 1) = "'" & .TextMatrix(i, j)
         Next j
      Next i
      
      End With
      
      Excelapp.Visible = True
      'Excelapp.Sheets.PrintPreview
Ert:
     If Not (Excelapp Is Nothing) Then
        'Excelapp.Quit
      End If
    
End Sub</span></strong></span></strong>

      比较这三种方法,都可以把数据从vb中导出到Excel中,殊途同归,都差不多吧,我个人建议大家使用第三种方法,这样可以节约大量的时间,而且还能提高系统的稳定性。

      其实我们引用对象库后,大多数都需要将其中的对象先创建,在使用,最后释放。像我们之前学习的记录集对象(Recordset),还有现在的Excel,在引用Microsoft Excel 14.0 Object Library 并使用它的时候最难的地方在于Application和其它子对象的使用,因为我们没怎么接触过,所以感觉陌生,不过没有关系,我们先大体的了解它,然后慢慢琢磨,学习吗,就是先开始盲人摸象。

  • 8
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 39
    评论
VB表格控件及实例-VB表格控件(celltext.ocx、mscroll.ocx),由于VB 内部表格控件有太多限制,不能直接编辑,不能直接进行数据的复制、粘贴,也不支持鼠标滚轮的滚动操作,非常不方便。该控件解决了这些问题,并增加了一些非常实用的   功能;经过长时间的调试和使用,运行良好。   该表格控件操作非常简单,与Excel 表格操作类似,功能实用且可以再扩展,并且支持多种格式的数据输入,对于有重复数据交互操作的朋友来说,使用该控件可以节约大量的时间。。   该表格控件有如下功能(集成在右键弹出菜单中),其操作与Excel 基本相似,也能进行公   式计算及字符处理;表格数据可以导出,需要时再导入继续使用。1、通过粘贴、复制可以与Excel 交互进行数据复制/粘贴,且支持不同格式数据复制输入。   2、公式计算,如在单元格(1, 1)处输入公式便能显示计算结果,并记忆该公式。   3、字符串处理,如在单元格(1,2)处输入下面公式便能对C1 列整体处理,计算亦同。   4、支持鼠标中键滚轮的滚动操作(VB 不直接支持滚轮操作)。   5、提供操作表格单元数据的接口函数,可以编程对单元格进行赋值或读取,操作简便。   6、支持的函数有:除了支持VB 自带的数学函数外,还支持其导出的数学函数,可直接调用,   如双曲正弦函数Sinh(),Cot()等。
### 回答1: VB.Net是一种基于.NET平台的编程语言,可以用来开发各种应用程序,包括与Microsoft Office进行交互的应用程序。VB.Net Office控件是一组用于操作和控制Microsoft Office软件(如Word、Excel、PowerPoint等)的工具集合。 VB.Net Office控件提供了丰富的功能和接口,使我们能够在应用程序中创建、打开、编辑和保存Office文档。它提供了简单而强大的对象模型,可以访问Office应用程序的各个组件(如文档、工作表、幻灯片等)以及它们的属性和方法。 使用VB.Net Office控件,我们可以编写代码来自动执行一系列操作,例如创建新的Word文档,将数据填充到Excel工作表中,从PowerPoint幻灯片中提取数据等等。我们可以通过编程方式控制Office应用程序的各个方面,如格式设置、数据导入导出、图表创建、自定义菜单等。 此外,VB.Net Office控件还提供了与Office应用程序进行交互的功能,例如打开和关闭Office应用程序、调用Office应用程序的功能和命令、处理Office应用程序的事件等。通过这些功能,我们可以根据具体需求来定制应用程序,以实现更高的自动化和扩展性。 总结来说,VB.Net Office控件是一种方便的工具,可以帮助我们在VB.Net应用程序中利用Microsoft Office软件的强大功能。它提供了丰富的功能和接口,使我们能够轻松地与Office应用程序进行交互,并能够编写代码来自动化执行各种操作。 ### 回答2: VB.NET是一种面向对象的编程语言,可以通过使用Office控件来操作Microsoft Office软件。Office控件库为开发人员提供了一组功能强大的工具,使其能够在自己的应用程序中嵌入和自动化Office应用程序。以下是VB.NET Office控件的一些主要功能和用途: 1.自动化Office应用程序:使用VB.NET和Office控件,可以自动化执行许多Office应用程序的操作,如创建和编辑Word文档、Excel表格和PowerPoint演示文稿。 2.读写Office文档:通过VB.NET和Office控件,可以轻松读取和修改Office文档中的内容,例如从Excel表格中读取数据、向Word文档中添加文本、创建幻灯片等。 3.与Outlook集成:使用VB.NET和Office控件,可以通过创建和发送电子邮件、管理日历和联系人,与Outlook进行集成。 4.自定义菜单和工具栏:通过VB.NET和Office控件,可以在Office应用程序中创建自定义菜单和工具栏,以实现特定的操作和功能。 5.数据分析和报告生成:使用VB.NET和Office控件,可以将数据导入到Excel中进行分析和报告生成,将数据展示为图表、图形和表格。 通过VB.NET和Office控件,开发人员可以轻松地利用Microsoft Office软件的功能,实现自定义的业务需求。无论是自动化处理大量文件、与Outlook进行交互还是生成专业的报告,VB.NET和Office控件都是非常有用的开发工具。 ### 回答3: VB.NET是一种流行的编程语言,用于开发Windows平台上的应用程序。Office控件是VB.NET中的一组特殊控件,用于与Microsoft Office套件中的各种应用程序进行交互和集成。 VB.NET中的Office控件包括Word控件、Excel控件和PowerPoint控件等,它们都是通过与Office应用程序的COM接口进行通信来实现功能的。 使用VB.NET中的Office控件,我们可以通过编程方式创建、打开、编辑和保存Word文档、Excel电子表格和PowerPoint演示文稿。我们可以使用这些控件来实现自定义的表格、图表和图形,以及添加、修改和删除文本、图像和媒体内容。 除了处理文档内容,Office控件还提供了与文档格式和样式相关的功能。我们可以通过控件修改字体、颜色、对齐方式等文本格式,并可以应用预定义的样式和主题。 此外,Office控件还允许我们执行一些高级操作,比如使用一组预定义的功能和方法来进行邮件合并、数据筛选和排序、图表生成和编辑等。 总之,VB.NET中的Office控件为我们提供了方便、快捷的方法来与Microsoft Office应用程序进行交互。无论是创建个人应用程序还是企业级解决方案,Office控件都能帮助我们实现与Office应用程序的无缝集成,从而提高工作效率和用户体验。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值