将数据从 Visual Basic 传输到 Excel

INFO:将数据从 Visual Basic 传输到 Excel 的方法

适用于

概要

本文介绍将数据从 Microsoft Visual Basic 应用程序传输到 Microsoft Excel 的多种方法。本文还介绍了每种方法的优缺点,这样您可以选择最适合您的解决方案。

更多信息

将数据传输到 Excel 工作簿最常用的方法是“自动化”功能。“自动化”功能为您提供了指定数据在工作簿中所处位置的最大的灵活性,以及对工作簿进行格式设置和在运行时进行各种设置的功能。利用“自动化”功能,您可以使用多种方法传输数据:
  • 逐单元格传输数据
  • 将数组中的数据传输到单元格区域
  • 使用 CopyFromRecordset 方法向单元格区域传输 ADO 记录集中的数据
  • 在 Excel 工作表上创建一个 QueryTable,它包含对 ODBC 或 OLEDB 数据源进行查询的结果。
  • 将数据传输到剪贴板,然后将剪贴板内容粘贴到 Excel 工作表中。
您还可以使用一些其他方法将数据传输到 Excel,而不必使用“自动化”功能。如果您正在运行服务器端应用程序,这是一种将批量数据处理从客户端移走的好方法。在没有“自动化”功能的情况下,可以使用下列方法来传输数据:
  • 将数据传输到制表符分隔或逗号分隔的文本文件,然后 Excel 可以将该文本文件分析为工作表上的单元格
  • 使用 ADO 将数据传输到工作表
  • 使用动态数据交换 (DDE) 将数据传输到 Excel
下面的部分提供了每种解决方案的详细信息。
使用“自动化”功能逐单元格传输数据
利用“自动化”功能,您可以逐单元格地向工作表传输数据:
   Dim oExcel As Object
   Dim oBook As Object
   Dim oSheet As Object

   'Start a new workbook in Excel
   Set oExcel = CreateObject("Excel.Application")
   Set oBook = oExcel.Workbooks.Add


   'Add data to cells of the first worksheet in the new workbook
   Set oSheet = oBook.Worksheets(1)
   oSheet.Range("A1").Value = "Last Name"
   oSheet.Range("B1").Value = "First Name"
   oSheet.Range("A1:B1").Font.Bold = True
   oSheet.Range("A2").Value = "Doe"
   oSheet.Range("B2").Value = "John"

   'Save the Workbook and Quit Excel
   oBook.SaveAs "C:/Book1.xls"
   oExcel.Quit
如果数据量较少,逐单元格传输数据是一种完全可以接受的方法。您可以灵活地将数据放到工作簿中的任何位置,并可以在运行时根据条件对单元格进行格式设置。不过,如果需要向 Excel 工作簿传输大量数据,则 建议您使用此方法。您在运行时获取的每一个 Range 对象都会产生一个接口请求;因此,以这种方式传输数据速度较慢。另外,Microsoft Windows 95 和 Windows 98 在接口请求上有 64K 限制。如果在接口请求上达到或超过这一 64K 限制,自动化服务器 (Excel) 可能停止响应,或者您可能收到表明内存不足的错误。Windows 95 和 Windows 98 中的这一限制在下面的知识库文章中进行了讨论:

216400 PRB:Cross-Process COM Automation Can Hang Client Application on Win95/98

需要再次强调的是,逐单元格传输数据仅适用于传输少量数据。如果需要将大量的数据集传输到 Excel,应考虑下文提供的解决方案之一。

有关自动化 Excel 的更多示例代码,请参见以下 Microsoft 知识库文章:

219151 HOWTO:在 Visual Basic 中自动运行 Microsoft Excel

使用“自动化”功能将数据数组传输到工作表上的区域
一次可以将一个数据数组传输到多个单元格区域:
   Dim oExcel As Object
   Dim oBook As Object
   Dim oSheet As Object

   'Start a new workbook in Excel
   Set oExcel = CreateObject("Excel.Application&#
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值