VB程序导出数据到Excel

合集下载

VB与EXCEL

VB与EXCEL

各位朋友,我现在急求一段vb中将数据导出Excel的代码,有没有不用连接或调用函数实现该功能的代码啊?拜托各位帮帮忙吧!将不胜感激!问题点数:0、回复次数:21楼zleia (zleia) 回复于 2005-06-07 13:25:02 得分0Private Sub Form_Load()Dim cnn As New ADODB.ConnectionDim str As Stringstr = App.Path & "\book1.xls"str = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & str & ";Extended Properti es=""Excel 8.0;HDR=Yes;IMEX=1"""'str = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\123.xls;Extended Properties=""Exc el 8.0;HDR=Yes;IMEX=1"""'"HDR=Yes;" indicates that the first row contains columnnames, not data '"IMEX=1;" tells the driver to always read "intermixed" data columns as text 'TIP! SQL syntax: "SELECT * FROM [sheet1$]" - i.e. worksheet name follow ed by a "$" and wrapped in "[" "]" brackets.cnn.Open strDim rs As New ADODB.Recordsetrs.Open "SELECT * FROM [sheet1$]", cnn, adOpenStatic, adLockReadOnlyWhile Not rs.EOFCombo1.AddItem rs.Fields(0).Value & rs.Fields(1).Valuers.MoveNextWendSet DataGrid1.DataSource = rsEnd SubTop 2楼qhdwyl (沉默的人) 回复于 2005-07-05 18:15:42 得分0把datagrid 里的导出excel新手,恳请高人指点一二。

Accessvba导出数据到Excel方法总结

Accessvba导出数据到Excel方法总结

Accessvba导出数据到Excel方法总结Access vba有各种方法可以导出到Excel,方法大致如下:1、查询导出。

优点:可以根据查询设计(直观) 。

缺点:格式固定。

2、ADO逐条遍历。

优点:写入位置可以灵活控制。

缺点:速度较慢3、CopyFromRecordset 。

优点:速度极快。

缺点:格式固定4、Excel插入QueryTable 。

优点:速度较快,可以汇总5、复制粘贴。

优点:标题、格式等和子窗体一致。

缺点:只能导出数据表显示的子窗体数据1、利用查询导出1.DoCmd.OutputT o acOutputQuery, "具体的查询名称", acFormatXLS, , True执行这条语句,即可把对应的查询导出到Excel文件拓展:1)你也可以根据SQL语句自动创建查询,再导出。

1.CurrentDb.CreateQueryDef "新的查询名称", "SQL语句" '创建查询2)导出之后,你可以删除掉这个查询1.DoCmd.DeleteObject acQuery, "查询名称" '删除查询3)也可以修改当前查询的SQL语句之后,再导出1.Dim qdf As Object 'DAO.QueryDef'2.Set qdf = CurrentDb.QueryDefs("查询名称")3.qdf.SQL = strSQL '设置新的SQL语句'2、ADO逐条遍历这种方法是最传统和最典型的方法,也是最灵活的。

打开一个记录集,然后遍历数据对Excel操作即可。

重点在操作Excel。

1.Dim rs As New ADODB.Recordset2.Dim xlApp As Object 'Excel.Application'3.Dim xlBook As Object 'Excel.Workbook'4.Dim xlSheet As Object 'Excel.Worksheet'5.Set xlApp = CreateObject("Excel.Application")6.Set xlBook = xlApp.Workbooks.Add '添加一个新的Book'7.Set xlSheet = xlApp.ActiveSheet '使用当前的Sheet'8.Dim strSql As String9.Dim i As Long10.strSql="Select * from 表1 where ID<10"11.rs.Open strSql, CurrentProject.Connection, 1, 112.Do While Not rs.EOF13.xlSheet.Cells(2 + i,1)=rs("ID") '从第2行开始写数据'14.xlSheet.Cells(2 + i,2)=rs("FName")15.rs.MoveNext16.i=i+117.Loop18.rs.Close19.xlApp.Visible=True3、CopyFromRecordset导出数据CopyFromRecordset是Excel vba的方法,可以快速把一个记录集的数据填充到Excel单元格中。

VB数据库编程——批量导出数据到Excel

VB数据库编程——批量导出数据到Excel

摘 要 :t csC ; 为例 , 绍 了通 过V rAcesKl :  ̄库 介 B的 D t be t . Lbay ̄ E c l1. bet irr库 结合 二 维数 组 aaO jc 20 irr x e 1 O jc Lbay 0
实现 了高效批 量导 出数 据 到E c l x e实例 。
D m E clie ) 二维 数组 , 于暂 存所 导数据 的字段 名 i x e t ( Tl 用 Di t Q sSr g m s S LA tn r i Di c nA D BC n et n m Myo sA OD .o n ci 创 建数据 库连 接通道 o Di R sA OD .eode 创 建数 据集 m My sA D BR crst
的 目的 。
3 主要 窗 体 布 置及 算 法 描 述
新建工程pOt C rO t 模块po 、 巧u 、 ̄zf u、 gm e 两个命令按钮 m
c d u和 c E i m O t md x 。 t
4 主 要程 序 代 码
D m My aa ) i D t( 二维数 组 , 于暂存 所导 数据记 录 用
个关键 过 程和数 组 . 功能 如下 :
( ) xc tS (过程 。用 于连 接数 据库及 对表 操作 。 1E eueQL )
( ) aa o r y ) 2 D t A r ( 过程 。 T a 该过 程用于 把所 导数据 的字段名 和 数据分别 暂存在两个 动态二 维数组E clie ) xeTt (和My aa ) 。 l d t( 里 ( ) xeTt ( 动态二 维数 组 。暂 存所 导数 据的字 段名 。 3 E clie ) l
通过V B的Ac vxD t be t . Lbay 连 接 A cs数 t e aaO jc 0 irr库 i 2 ces 据库 , 取 字段 和 记 录并 分别 暂 存在 两 个二 维数 组 中 , 通过 读 再

VB导出Excel报表

VB导出Excel报表

VB导出Excel报表VB 是常用的应用软件开发工具之一,由于VB的报表功能有限,而且一但报表格式发生变化,就得相应修改程序,给应用软件的维护工作带来极大的不便。

因此有很多程序员现在已经充分利用EXECL的强大报表功来实现报表功能。

但由于VB与EXCEL由于分别属于不同的应用系统,如何把它们有机地结合在一起,是一个值得我们研究的课题。

一、 VB读写EXCEL表:能获取到表的行数的代码:edRange.Rows.CountVB本身提自动化功能可以读写EXCEL表,其方法如下:1、在工程中引用Microsoft Excel类型库:从"工程"菜单中选择"引用"栏;选择Microsoft Excel 9.0 Object Library(EXCEL2000),然后选择"确定"。

表示在工程中要引用EXCEL类型库。

2、在通用对象的声明过程中定义EXCEL对象:Dim xlApp As Excel.ApplicationDim xlBook As Excel.WorkBookDim xlSheet As Excel.Worksheet3、在程序中操作EXCEL表常用命令:Set xlApp = CreateObject("Excel.Application") '创建EXCEL对象Set xlBook = xlApp.Workbooks.Open("文件名") '打开已经存在的EXCEL工件簿文件xlApp.Visible = True '设置EXCEL对象可见(或不可见)Set xlSheet = xlBook.Worksheets("表名") '设置活动工作表xlSheet.Cells(row, col) =值 '给单元格(row,col)赋值xlSheet.PrintOut '打印工作表xlBook.Close (True) '关闭工作簿xlApp.Quit '结束EXCEL对象Set xlApp = Nothing '释放xlApp对象xlBook.RunAutoMacros (xlAutoOpen) '运行EXCEL启动宏xlBook.RunAutoMacros (xlAutoClose) '运行EXCEL关闭宏4、在运用以上VB命令操作EXCEL表时,除非设置EXCEL对象不可见,否则VB程序可继续执行其它操作,也能够关闭EXCEL,同时也可对EXCEL进行操作。

VBA实现Excel数据导入和导出的实用方法

VBA实现Excel数据导入和导出的实用方法

VBA实现Excel数据导入和导出的实用方法Excel是一款功能强大的办公软件,而VBA(Visual Basic for Applications)是Excel的一种编程语言,它可以帮助我们实现各种自动化任务。

在本篇文章中,我将为您介绍VBA实现Excel数据导入和导出的实用方法。

一、数据导入方法:1. 打开Excel,按下“ALT + F11”打开VBA编辑器。

2. 在VBA编辑器中,选择“插入”-“模块”,在新建的模块中编写以下代码:```vbaSub ImportData()Dim dataWorkbook As WorkbookDim importWorkbook As WorkbookDim importSheet As WorksheetDim importRange As Range'选择需要导入数据的Excel文件Application.FileDialog(msoFileDialogOpen).Show'将选择的文件导入到新建的工作簿Set importWorkbook =Workbooks.Open(FileName:=Application.FileDialog(msoFileDialogOpen). SelectedItems(1))'选择需要导入数据的工作表和范围Set importSheet = importWorkbook.Sheets("Sheet1") '根据需要修改工作表名称Set importRange = importSheet.Range("A1:B10") '根据需要修改数据范围'将数据复制到当前工作簿中importRange.Copy ThisWorkbook.Sheets("Sheet1").Range("A1") '根据需要修改当前工作簿和工作表名称'关闭导入的工作簿,不保存更改importWorkbook.Close SaveChanges:=FalseEnd Sub```3. 关闭VBA编辑器,返回Excel界面,按下“ALT + F8”调出宏对话框,选择并运行“ImportData”宏。

通过VBA实现Excel数据导入导出的方法

通过VBA实现Excel数据导入导出的方法

通过VBA实现Excel数据导入导出的方法Excel是一款功能强大的电子表格软件,在处理和分析大量数据时非常实用。

VBA(Visual Basic for Applications)是一种编程语言,可以用来自动化Excel任务,例如数据导入和导出。

本文将介绍使用VBA实现Excel数据导入和导出的方法。

首先,我们将讨论如何使用VBA来导入数据到Excel。

数据可以来自各种来源,如文本文件、数据库或其他Excel工作簿。

下面是一个示例,演示如何从文本文件导入数据:```vbaSub ImportData()Dim filePath As StringDim ws As WorksheetDim rng As Range' 获取要导入的文件路径filePath = Application.GetOpenFilename("Text Files (*.txt), *.txt")' 检查用户是否选择了文件If filePath <> "False" Then' 选择要导入数据的工作表Set ws = ThisWorkbook.Sheets("数据")' 选择要导入数据的起始单元格Set rng = ws.Range("A1")' 清空起始单元格及其之后的数据ws.Range(rng, ws.Cells(ws.Rows.Count,rng.Column)).ClearContents' 使用文本导入向导导入数据With ws.QueryTables.Add(Connection:="TEXT;" & filePath, Destination:=rng).TextFileParseType = xlDelimited.TextFileCommaDelimiter = True.RefreshEnd With' 删除导入数据时自动创建的查询表ws.QueryTables(1).DeleteMsgBox "数据导入完成。

VB编程:使用MSHFlexGrid控件与Excel互传数据

VB编程:使用MSHFlexGrid控件与Excel互传数据

VB编程:使用MSHFlexGrid控件与Excel互传数据使用MSHFlexGrid控件获取并更新Excel中的数据要点:1、工程-引用,勾选Microsoft Excel 11.0 Object Libraly。

2、工程-部件,勾选Microsoft Hierarchical FlexGridControl 6.0。

3、在窗体添加一个MSHFlexGrid控件。

4、将需要打开更新的电子表格设置为“共享”(非常重要),方法:工具--共享工作簿。

代码:Private Sub Form_Load()Dim xlExcel As Excel.ApplicationDim xlBook As Excel.WorkbookDim xlSheet As Excel.WorksheetDim AppExcel As ObjectSet xlExcel = CreateObject("Excel.Application")xlExcel.Workbooks.Open "C:\Program Files\Microsoft Visual Studio\mywork\book1.xls"Set xlBook = xlExcel.Workbooks("book1.xls")Set xlSheet = xlBook.Worksheets(2)'选择第2个工作表Dim i As LongWith xlSheetx = 2y = 1While .Cells(2, y).Value <> ""y = y + 1WendWhile .Cells(x, 1).Value <> ""x = x + 1Wend'Debug.Print .RowsMSHFlexGrid1.Rows = x - 1MSHFlexGrid1.Cols = y - 1 MSHFlexGrid1.TextMatrix(0, 0) = .Cells(2, 1).ValueFor j = 2 To MSHFlexGrid1.ColsDim k As Integerk = jIf k Mod 2 = 1 Then k = k - 1MSHFlexGrid1.TextMatrix(0, j - 1) = .Cells(1, k) & .Cells(2, j) NextFor i = 3 To MSHFlexGrid1.RowsFor j = 1 To MSHFlexGrid1.Cols MSHFlexGrid1.TextMatrix(i - 2, j - 1) = .Cells(i, j).ValueNextNextEnd WithWith MSHFlexGrid1.Col = 1.Row = 1' .CellBackColor = vbBlueEnd With xlBook.Close (False) '关闭EXCEL工作簿Set xlSheet = NothingSet xlBook = NothingxlExcel.Quit '关闭EXCELSet xlExcel = Nothing '释放EXCEL对象End SubPrivate Sub Command4_Click() Dim xlExcel AsExcel.ApplicationDim xlBook As Excel.WorkbookDim xlSheet As Excel.WorksheetDim AppExcel As Object'MSFlexGrid1.Redraw = FalseSet xlExcel = CreateObject("Excel.Application")Set xlBook = xlExcel.Workbooks.Open("C:\Program Files\Microsoft Visual Studio\mywork\book1.xls", , ReadWrite) 'Set xlBook = xlExcel.Workbooks("zkb.xls")Set xlSheet = xlBook.Worksheets(2)' xlExcel.Visible = True '设置工作簿为可见With xlSheetFor i = 3 To MSHFlexGrid1.RowsFor j = 1 To MSHFlexGrid1.Cols .Cells(i, j) = MSHFlexGrid1.TextMatrix(i - 2, j - 1)NextNext End With'MSFlexGrid1.Redraw = TruexlBook.SavexlExcel.DisplayAlerts = FalsexlBook.Close (False) '关闭EXCEL工作簿Set xlSheet = NothingSet xlBook = NothingxlExcel.Quit '关闭EXCELSet xlExcel = Nothing '释放EXCEL对象End SubPrivate Sub Form_Load()Dim xlExcel As Excel.ApplicationDim xlBook As Excel.WorkbookDim xlSheet As Excel.WorksheetDim AppExcel As ObjectSet xlExcel = CreateObject("Excel.Application")xlExcel.Workbooks.Open "C:\Program Files\Microsoft Visual Studio\mywork\book1.xls"Set xlBook = xlExcel.Workbooks("book1.xls")Set xlSheet = xlBook.Worksheets(2)Dim i As LongWith xlSheetx = 2y = 1While .Cells(2, y).Value <> ""y = y + 1WendWhile .Cells(x, 1).Value <> ""x = x + 1Wend'Debug.Print .RowsMSHFlexGrid1.Rows = x - 1MSHFlexGrid1.Cols = y - 1 MSHFlexGrid1.TextMatrix(0, 0) = .Cells(2, 1).ValueFor j = 2 To MSHFlexGrid1.ColsDim k As Integerk = jIf k Mod 2 = 1 Then k = k - 1MSHFlexGrid1.TextMatrix(0, j - 1) = .Cells(1, k) & .Cells(2, j) NextFor i = 3 To MSHFlexGrid1.RowsFor j = 1 To MSHFlexGrid1.Cols MSHFlexGrid1.TextMatrix(i - 2, j - 1) = .Cells(i, j).ValueNextNextEnd WithWith MSHFlexGrid1.Col = 1.Row = 1' .CellBackColor = vbBlueEnd With xlBook.Close (False) '关闭EXCEL工作簿Set xlSheet = NothingSet xlBook = NothingxlExcel.Quit '关闭EXCELSet xlExcel = Nothing '释放EXCEL对象End SubPrivate Sub MSHFlexGrid1_Click()With MSHFlexGrid1.CellBackColor = vbCyanText3 = .TextMatrix(.Row, .Col)End WithText3.SetFocusEnd SubPrivate Sub MSHFlexGrid1_DblClick()With MSHFlexGrid1If .CellBackColor = vbCyan Then .CellBackColor = &HFFFFFF End WithEnd Sub。

VBA中的数据导入导出技巧

VBA中的数据导入导出技巧

VBA中的数据导入导出技巧VBA(Visual Basic for Applications)是一种用于Microsoft Office系列应用程序自动化的编程语言。

在Excel中,VBA可以帮助用户实现各种自定义的数据导入导出操作,提高数据处理的效率和准确性。

本文将介绍一些VBA中的数据导入导出技巧,帮助您更好地处理Excel中的数据。

1. 数据导入技巧在VBA中,数据导入是指将外部数据源中的数据导入到Excel工作簿中。

以下是几种常用的数据导入技巧:1.1. 从文本文件导入数据通过VBA,您可以将文本文件中的数据导入到Excel中。

首先,您需要使用VBA的Open语句打开文本文件,然后使用VBA的Input语句将数据逐行读取到Excel工作表中。

您还可以使用Split函数将每行的数据拆分成多个单元格。

最后,使用VBA的Close语句关闭文本文件。

1.2. 从数据库导入数据VBA还可以连接到数据库,如Access、SQL Server等,将其中的数据导入到Excel中。

您可以使用VBA的ADODB对象创建数据库连接,执行SQL查询语句,将查询结果导入到Excel工作表中。

这样,您可以轻松地获取和分析数据库中的数据。

1.3. 从Web页面导入数据使用VBA,您可以模拟浏览器的操作,自动打开Web页面并将其中的数据导入到Excel中。

您可以使用VBA的IE对象创建浏览器实例,使用该实例打开Web页面,并使用VBA的getElementsByTag等方法查找和读取Web页面中的数据。

然后,您可以将这些数据导入到Excel工作表中进行进一步处理和分析。

2. 数据导出技巧除了将外部数据导入到Excel中,VBA还可以帮助您将Excel中的数据导出到其他文件格式,以满足特定的需求。

以下是几种常用的数据导出技巧:2.1. 导出为文本文件使用VBA,您可以将Excel中的数据导出为纯文本文件。

您可以使用VBA的Open语句创建文本文件,使用VBA的Write语句将数据逐行写入文本文件,并使用VBA的Close语句关闭文本文件。

VB中MSFlexgrid输出到excel

VB中MSFlexgrid输出到excel
.Cells(8, "F") = objGrid.TextMatrix(5, 4) '动环材质
.Cells(9, "F") = objGrid.TextMatrix(6, 4) '静环材质
.Cells(10, "F") = objGrid.TextMatrix(7, 4) '橡胶硬度
.Cells(6, "I") = objGrid.TextMatrix(2, 4) '抽样水准
End With
objApp.Application.DisplayAlerts = False '不显示对话框
objWorkbook.SaveAs strFileName '保存到指定文件
.Cells(10, "C") = objGrid.TextMatrix(7, 2) '橡胶材质
.Cells(6, "F") = objGrid.TextMatrix(3, 4) '订单号
.Cells(7, "F") = objGrid.TextMatrix(4, 4) '抽样数
Set objWorkbook = objApp.Workbooks.Add(App.Path & "\" & "成品检验报告") '根据模板文件新建一个工作簿
Set objworksheet = objWorkbook.Worksheets("成品检验报告") '设定当前工作表为‘成品检验报告’
Dim objworksheet As Object 'EXCEL 工作表对象

VB中的MSflexgrid控件多行数据导出excel

VB中的MSflexgrid控件多行数据导出excel

如何在VB中导出为excel
在我遇到这个问题的时候,我就开始发难了,这个到底怎么做到呢!我就想起了在VB百例中添加了OLE中,对excel文档和word等的修改,我想是不是可以用上呢?于是我就去找VB百例中相关的内容,可是当我找到的时候很是让我失望,看来是我想多了!于是我就是百度,可是当面对那么多的内容我就开始犯难了,到底哪个才是正确的,于是我就开始一个一个看,找我需要的内容,当我觉得有一点头绪的时候,又一个问题开始了,我从VB的菜单栏引用上根本就找不到”Microsoft excel 15.0 object library”,我就从网上查,看到底是在计算机的什么位置,后来在贾文静的帮助下我终于发现了找到我需要引用的控件,现在我来讲讲导出excel的过程!
一:引用Microsoft excel 15.0 object library
看一下定位的位置,点击浏览---找C盘中的program files,然后在按照图上的路径找到咱们需要引用的excel
二:在模块中相关excel代码
三:在需要导出excel的窗体下的click事件下输入一下代码Call exportflexdatatoexcel (myflexgrid1)。

VBA实现Excel数据的导入导出

VBA实现Excel数据的导入导出

VBA实现Excel数据的导入导出Excel是一款功能强大的电子表格软件,而VBA(Visual Basic for Applications)则是Excel内置的宏语言,能够帮助用户实现自动化、批量处理等功能。

本文将介绍如何使用VBA实现Excel数据的导入导出功能,以提高工作效率和数据管理的便利性。

1. 导入数据在实际工作中,我们经常需要从外部文件或其他来源获取数据并导入到Excel中进行分析和处理。

使用VBA可以轻松实现这一功能。

首先,打开Excel并按下快捷键"Alt + F11",打开VBA编辑器。

点击"插入"->"模块",在新建模块中编写以下代码:```vbaSub 导入数据()Dim filePath As StringDim ws As Worksheet'选择要导入的文件With Application.FileDialog(msoFileDialogOpen).Title = "选择要导入的文件".Filters.Clear.Filters.Add "Excel文件", "*.xls*".AllowMultiSelect = FalseIf .Show = -1 ThenfilePath = .SelectedItems(1)ElseExit SubEnd IfEnd With'在当前工作簿中创建新工作表Set ws = ThisWorkbook.Sheets.Add'将导入文件的数据复制到新工作表中With Workbooks.Open(filePath).Sheets(1).UsedRange.Copy ws.Range("A1").Close savechanges:=FalseEnd WithEnd Sub```以上代码实现了一个名为"导入数据"的宏。

VBA开发中的数据导入与导出方法

VBA开发中的数据导入与导出方法

VBA开发中的数据导入与导出方法数据导入和导出是VBA开发中常见的需求之一。

通过VBA,我们可以使用各种方法将数据从外部文件或数据库导入到Excel中,或将Excel中的数据导出到其他文件或数据库中。

本文将介绍一些常用的VBA开发中的数据导入与导出方法。

一、从外部文件导入数据1. 使用Workbooks.Open方法打开外部文件:在VBA中,可以使用Workbooks.Open方法打开外部文件,并将其作为一个新的工作簿对象导入到Excel中。

通过指定文件路径和文件名,我们可以将文件的数据导入到当前工作簿或新的工作簿中。

下面是一个简单的示例代码,演示了如何从外部文件中导入数据到当前工作簿中:```Sub ImportDataFromExternalFile()Dim wb As WorkbookSet wb = Workbooks.Open("C:\Data\ExternalData.xlsx")wb.Sheets(1).UsedRange.CopyDestination:=ThisWorkbook.Sheets("Sheet1").Range("A1")wb.Close SaveChanges:=FalseEnd Sub```在上述代码中,我们使用Workbooks.Open方法打开名为ExternalData.xlsx的外部文件,并将其作为新的工作簿对象wb导入到Excel中。

然后,我们使用Copy 方法将外部文件中的数据复制到当前工作簿的Sheet1工作表的A1单元格及其后续单元格中。

最后,我们关闭了外部文件。

2. 使用QueryTables对象导入外部数据:QueryTables对象可以帮助我们在Excel中执行数据查询,并将查询结果作为表格导入到工作簿中。

我们可以使用QueryTables.Add方法创建一个新的QueryTable 对象,并指定查询的数据源。

【转】Vb.net史上最快的数据导入到EXCEL程序

【转】Vb.net史上最快的数据导入到EXCEL程序

【转】史上最快的数据导入到EXCEL程序最近一直为从程序中导入数据到EXCEL速度太慢而苦恼(从程序中提取的数据量有几万行),因此到处查找一些最快的方法,甚至请教朋友手下的工程师也无果。

从网上搜索的一些资料也大同小异。

后来在车上时突然灵光一闪,把其中一种方法改一下形式可不可以达到呢?回家迫不及待地一试,没想到成功了。

本着乐于分享的精神,拿出来在这里供大家参考一下,如果有用得着别忘了留言给我哦!目前,从程序中导入EXCEL有三种通用方法(据我所知的~),按快到慢的顺序如下:1..数据导入dataset的表中,然后FOR循环表的行与列,并将值写入EXCEL的CELL中(最慢)2。

数据导入dataset的表中,然后FOR循环表的行与列,并将值写入数组DataArray(,),然后利用MyExcel.Range("A2").resize(m,n).value=DataArray (较快)3..最近一直为从程序中导入数据到EXCEL速度太慢而苦恼(从程序中提取的数据量有几万行),因此到处查找一些最快的方法,甚至请教朋友手下的工程师也无果。

从网上搜索的一些资料也大同小异。

后来在车上时突然灵光一闪,把其中一种方法改一下形式可不可以达到呢?回家迫不及待地一试,没想到成功了。

本着乐于分享的精神,拿出来在这里供大家参考一下,如果有用得着别忘了留言给我哦1目前,从程序中导入EXCEL有三种通用方法(据我所知的~),按快到慢的顺序如下:1..数据导入dataset的表中,然后FOR循环表的行与列,并将值写入EXCEL的CELL中(最慢)2。

数据导入dataset的表中,然后FOR循环表的行与列,并将值写入数组DataArray(,),然后利用MyExcel.Range("A2").resize(m,n).value=DataArray (较快,但数据一大特慢)3..数据导入dataset的表中,然后FOR循环表的行与列,并将值写入数组DataArray(,),然后将数组发送给剪贴板System.Windows.Forms.Clipboard.SetDataObject(DataArray),然后在EXCEL对象中MyExcel.Range("A1").Select() -----MyExcel.Paste即可(较快,但数据一大特慢)在发现这几种方法不如意后我一直在思考这个问题。

用 VB 导入Excel 中的数据

用 VB 导入Excel 中的数据

用VB 导入Excel 中的数据,或将VB中算出的数据导入Excel (附图)
作者:朱(晴)琴
当我用VB 画了图放在毕业论文中,要求把数据导出到Excel 中,用Excel 画图,说这样图比较清晰。

首先,在VB中不能直接与Excel 联系。

点“工程”、“引用”
选中“Microsoft Excel 12.0 Object Library” 项选中后点“确定”
完成这个工作后,就可以写代码,导入Excel中的数据,或导出数据到Excel。

在窗体代码窗口,定义
(1)将Excel中的数据导入到VB的数组中
1、点“工程”、“部件”,选中
在窗体上画一个CommonDialog
2、建立一个打开Excel表的响应事件,简单点可以建一个命令按钮响应事件。

3、定义
然后写一个For 循环,把Excel 里的数导入VB,在导入前当然需要定义一个数组,来存放导入的数据。

xlsheet.cells (i , j ),里面i 表示第i 行,j 表示第j 列
例如:要导入数据的Excel表中的数据如下
则需要定义一个数组,如Data(1 to 15,1 to 2)
For j = 1 to 2
For i=1 to 15
Data(i,j)=xlsheet.cells(i,j)
next i
next j
将Excel 中的数据赋给数组后,需要将Excel 关闭,关闭代码如下
(2)将VB 数组中的数据导出到Excel 中保存
除了For 循环处稍修改下,其余同前面一样。

将数组中的数据赋给Excel 后,需要将Excel 关闭,关闭代码如下。

VB6.0类模块实现DataGrid表格导出到Excel(原创)

VB6.0类模块实现DataGrid表格导出到Excel(原创)

VB6.0类模块实现DataGrid表格导出到Excel(原创)将VB中的DataGrid导出到Excel功能网上有很多实例,大家都可以下载后修改修改使用,但是一个程序中多次使用该代码的话,每次都需要修改里面的相关参数,较为麻烦。

作者奉行的理念是“拿来就用”,通过类模块的封装,可以很好的提高代码的重用性,只需要2行代码就可以搞定哦。

本源码复制粘贴后即可使用。

爽吧!如果你用的是其他表格控件,如MSHFlexGrid,则直接将参数中的DataGrid参数换成你的控件类型即可。

如有问题经联系作者****************一、准备工作要想使用本类模块,必须像使用其他导出Excel代码段一样,先引用Microsoft Excel Object Library 。

这是一定要注意的,否则调用该类模块将出错。

二、类模块源码类模块名称:ToExcelOption Explicit'**********************************************************'**函数名:GridToExcel'**输入:needGrid,needAdodc'** :'** :'**输出:'**功能描述:自动将DataGrid表格中的内容导出到Excel'**全局变量:见变量声明'**调用模块:'**作者:吴长平'**日期:2013-1-24 08:45:48'**修改人:吴长平'**日期:'**版本:V1.0.0'**支持:需要引用Excel Object Library'*********************************************************Public Sub GridToExcel(ByVal needGrid As DataGrid, ByVal needAdodc As ADODB.Recordset)'记录集为空时自动报错,并退出过程If needAdodc Is Nothing ThenMsgBox ("参数中的记录集为空!")Exit SubEnd If'定义整数i,jDim i As Integer, j As Integer'定义Excel应用程序对象Dim xlapp As Excel.Application'定义Excel工作薄对象Dim xlbook As Excel.Workbook'定义Excel工作表对象Dim xlsheet As Excel.Worksheet'创建Excel应用程序对象Set xlapp = CreateObject("excel.application") 'Excel应用程序对象可见xlapp.Visible = True'新建工作薄,赋值给xlbookSet xlbook = xlapp.Workbooks.Add'工作薄xlbook的第一个工作表赋值给xlsheet Set xlsheet = xlbook.Worksheets(1)'添加表头For i = 0 To needGrid.Columns.Count - 1xlsheet.Cells(1, i + 1) = needGrid.Columns(i).Caption Next i'循环向Excel表格的单元格中添加内容i = 0'一直输出到记录集的末尾Do While (needAdodc.EOF = False)For j = 0 To Int(needGrid.Columns.Count - 1)needGrid.Col = jxlsheet.Cells(i + 2, j + 1) = needGrid.TextNext j'记录集指针向下移动一条needAdodc.MoveNexti = i + 1Loop'释放Excel工作薄对象Set xlapp = Nothing'释放义Excel工作表对象Set xlbook = NothingEnd Sub三、类模块的使用。

vb将数据导出到excel[整理版]

vb将数据导出到excel[整理版]

'************************************************************************* '**'** VB将数据导出到EXCEL,没有安装EXCEL的一样也可以导出.'**'** 调用方式: s_Export2Excel(Ado.Recordset) 或s_Export2Excel(Rds.RecordSet) '** 支持Rds 与Ado 的记录导出'**'*************************************************************************'得到所有数据类型,有些数据类型EXCEL不支持,已经替换掉Public Function f_FieldType$(ByV al sType&)Dim iRe$Select Case sTypeCase 2, 3, 20iRe = "int "Case 5iRe = "float "Case 6iRe = "money "Case 131iRe = "numeric "Case 4iRe = "real "Case 128iRe = "binary "Case 204iRe = "varbinary "Case 11iRe = "bit "Case 129, 130iRe = "char "Case 17, 72, 131, 200, 202, 204iRe = "varchar "Case 201, 203iRe = "text "Case 7, 135iRe = "datetime "Case 205iRe = "image "Case 128iRe = "timestamp "End Selectf_FieldType = iReEnd Function'导出ADO记录集到EXCELPublic Function f_Export2Excel(ByV al sRecordSet As ADODB.Recordset, ByV al sExcelFileName$ _, Optional ByV al sTableName$, Optional ByV al sOverExist As Boolean = False) As Boolean'On Error GoTo lbErrDim iConcStr, iSql$, iFdlist$, iDB As ADODB.ConnectionDim iI&, iFdType$, j, TmpField, FileNameDim iRe As Boolean'检查文件名If Dir(sExcelFileName) <> " " ThenIf sOverExist ThenKill sExcelFileNameElseiRe = FalseGoTo lbexitEnd IfEnd If'生成创建表的SQL语句With sRecordSetFor iI = 0 To .Fields.Count - 1iFdType = f_FieldType(.Fields(iI).Type)Select Case iFdTypeCase "char ", "varchar ", "nchar ", "nvarchar ", "varbinary "If .Fields(iI).DefinedSize > 255 TheniSql = iSql & ",[ " & .Fields(iI).Name & "] text "ElseiSql = iSql & ",[ " & .Fields(iI).Name & "] " & iFdType & _"( " & .Fields(iI).DefinedSize & ") "End IfCase "image "Case ElseiSql = iSql & ",[ " & .Fields(iI).Name & "] " & iFdTypeEnd SelectNextIf sTableName = " " Then sTableName = .SourceiSql = "create table [ "& sTableName & "]( " & Mid(iSql,2) & ") "End With'数据库连接字符串iConcStr = "DRIVER={Microsoft Excel Driver (*.xls)};DSN= ' ';FIRSTROWHASNAMES=1;READONLY=FALSE; " & _"CREA TE_DB= " " " & sExcelFileName & " " ";DBQ= " & sExcelFileName'创建Excel文件,并创建表Set iDB = New ADODB.ConnectioniDB.Open iConcStriDB.Execute iSql'插入数据With sRecordSet.MoveFirstWhile .EOF = FalseiSql = " "iFdlist = " "For iI = 0 To .Fields.Count - 1iFdType = f_FieldType(.Fields(iI).Type)If iFdType <> "image " And IsNull(.Fields(iI).V alue) = False TheniFdlist = iFdlist & ",[ " & .Fields(iI).Name & "] "Select Case iFdTypeCase "char ", "varchar ", "nchar ", "nvarchar ", "text "iSql = iSql & ", ' " & .Fields(iI).V alue & " ' "Case "datetime "iSql = iSql & ",# " & .Fields(iI).V alue & "# "Case "image "Case ElseiSql = iSql & "," & .Fields(iI).V alueEnd SelectEnd IfNextiSql = "insert into [ " & sTableName & "]( " & _Mid(iFdlist, 2) & ") values( "& Mid(iSql, 2) & ") "iDB.Execute iSql.MoveNextWendEnd With'处理完毕,关闭数据库iDB.CloseSet iDB = NothingMsgBox "已经将数据保存到[ " & sExcelFileName & " ] ", 64iRe = TrueGoTo lbexitlbErr:MsgBox "发生错误: " & Err.Description & vbCrLf & _"错误代码: " & Err.Number, 64, "错误"lbexit:f_Export2Excel = iReEnd Function。

VB2010_DataGridView绑定DataTable并导出为excel

VB2010_DataGridView绑定DataTable并导出为excel

VB2010_DataGridView绑定DataTable并导出为excel本人已经在VB2010下调试通过,窗口只有DataGridView, CheckBox, Button控件各一个,供各位参考,希望对大家有帮助:Imports System.Windows.FormsImports Microsoft.Office.InteropPublic Class Form1Dim oDatatable As New DataTablePrivate Sub btnExport_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnExport.Click'Using save file dialog that allow you to chosse the file name.Dim objDlg As New SaveFileDialogobjDlg.Filter = "Excel File|*.xls"objDlg.OverwritePrompt = FalseIf objDlg.ShowDialog = DialogResult.OK ThenDim filepath As String = objDlg.FileNameExportToExcel(oDatatable, filepath)End IfEnd SubPrivate Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load'set the datatable to DataGridView1's datasorurce propertyoDatatable.Columns.Add("id")oDatatable.Columns.Add("姓名")oDatatable.Rows.Add()oDatatable.Rows(0)(0) = "1"oDatatable.Rows(0)(1) = "李某某"oDatatable.Rows.Add()oDatatable.Rows(1)(0) = "2"oDatatable.Rows(1)(1) = "孙某某"oDatatable.Rows.Add()oDatatable.Rows(2)(0) = "3"oDatatable.Rows(2)(1) = "赵某某"DataGridView1.DataSource = oDatatableEnd SubPrivate Sub ExportToExcel(ByVal dtTemp As DataTable, ByVal filepath As String)Dim strFileName As String = filepathIf System.IO.File.Exists(strFileName) ThenIf (MessageBox.Show("Excel 文件已经存在,你想覆盖它吗?", "导出为Excel", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) = System.Windows.Forms.DialogResult.Yes) ThenSystem.IO.File.Delete(strFileName)ElseReturnEnd IfEnd IfDim _excel As New Excel.ApplicationDim wBook As Excel.WorkbookDim wSheet As Excel.WorksheetwBook = _excel.Workbooks.Add()wSheet = wBook.ActiveSheet()'-----------------------------------Dim dc As System.Data.DataColumnDim dr As System.Data.DataRowDim colIndex As Integer = 0Dim rowIndex As Integer = 0'---------------------------------- export the ColumnsIf CheckBox1.Checked ThenFor Each dc In dtTemp.ColumnscolIndex = colIndex + 1wSheet.Cells(1, colIndex) = dc.ColumnNameNextEnd If'--------------------------------export the rowsFor Each dr In dtTemp.RowsrowIndex = rowIndex + 1colIndex = 0For Each dc In dtTemp.ColumnscolIndex = colIndex + 1wSheet.Cells(rowIndex + 1, colIndex) = dr(dc.ColumnName)NextNextwSheet.Columns.AutoFit()wBook.SaveAs(strFileName)'----------------------------release the objectsReleaseObject(wSheet)wBook.Close(False)ReleaseObject(wBook)_excel.Quit()ReleaseObject(_excel)'----------------------------- some time Office application does not quit after automation: so i amcalling GC.Collect method.GC.Collect()MessageBox.Show("Excel 文件导出成功!")End SubPrivate Sub ReleaseObject(ByVal o As Object)TryWhile (System.Runtime.InteropServices.Marshal.ReleaseComObject(o) > 0)End WhileCatchFinallyo = NothingEnd TryEnd SubEnd Class。

VB6.0导出excel方法源代码

VB6.0导出excel方法源代码

VB6.0导出excel方法源代码VB6.0 导出excel 方法源代码方法一:用Msflexgrid的Textmatrix属性取Msflexgrid中每一个单元格的内容,然后填到Excel表中,或者写成CSV格式方法二:直接把查询结果导出成Excel工作表Public Sub Export(formname As Form, flexgridname As String)Dim xlApp As Object 'Excel.ApplicationDim xlBook As Object 'Excel.WorkbookDim xlSheet As Object 'Excel.WorksheetScreen.MousePointer = vbHourglassOn Error GoTo Err_ProcSet xlApp = CreateObject("Excel.Application")Set xlBook = xlApp.Workbooks.AddSet xlSheet = xlBook.Worksheets(1)'Begin to fill data to sheetDim i As LongDim j As IntegerDim k As IntegerWith formname.Controls(flexgridname)For i = 0 To .rows - 1k = 0For j = 0 To .Cols - 1If .colwidth(j) > 20 Or .colwidth(j) < 0 Thenk = k + 1xlSheet.Cells(i + 1, k).Value = "'" & .TextMatrix(i, j)End IfNext jNext iEnd WithxlApp.Visible = TrueScreen.MousePointer = vbDefaultExit SubErr_Proc:Screen.MousePointer = vbDefaultMsgBox "请确认您的电脑已安装Excel!", vbExclamation,"提示"End Sub===================================Public Function ExporToExcel(strOpen As String)'*********************************************************'* 名称:ExporT oExcel'* 功能:导出数据到EXCEL'* 用法:ExporT oExcel(sql查询字符串)'*********************************************************Dim Rs_Data As New ADODB.RecordsetDim Irowcount As IntegerDim Icolcount As IntegerDim cn As New ADODB.ConnectionDim xlApp As New Excel.ApplicationDim xlBook As Excel.WorkbookDim xlSheet As Excel.WorksheetDim xlQuery As Excel.QueryTableWith Rs_DataIf .State = adStateOpen Then.CloseEnd If.ActiveConnection = "provider=msdasql;DRIVER=Microsoft Visual FoxPro Driver;UID=;Deleted=yes;Null=no;Collate=Machine;Background Fetch=no;Exclusive=No;SourceType=DBF;SourceDB=D:\DBF;".CursorLocation = adUseClient.CursorType = adOpenStatic.Source = strOpen.OpenEnd WithWith Rs_DataIf .RecordCount < 1 ThenMsgBox ("没有记录!")Exit FunctionEnd If'记录总数Irowcount = .RecordCount'字段总数Icolcount = .Fields.CountEnd WithSet xlApp = CreateObject("Excel.Application")Set xlBook = NothingSet xlSheet = NothingSet xlBook = xlApp.Workbooks().AddSet xlSheet = xlBook.Worksheets("sheet1")xlApp.Visible = True'添加查询语句,导入EXCEL数据Set xlQuery = xlSheet.QueryTables.Add(Rs_Data, xlSheet.Range("a1"))xlQuery.FieldNames = True '显示字段名xlQuery.RefreshxlApp.Application.Visible = TrueSet xlApp = Nothing '"交还控制给ExcelSet xlBook = NothingSet xlSheet = NothingEnd Function=============================='*********************************************************'* 名称:OutDataToExcel'* 功能:将MsFlexGrid控件中显示的内容输出到Excel表格中进行打印'*********************************************************Public Sub OutDataToExcel(Flex As MSFlexGrid) '导出至ExcelDim s As StringDim i As IntegerDim j As IntegerDim k As IntegerOn Error GoTo ErtMe.MousePointer = 11Dim Excelapp As Excel.ApplicationSet Excelapp = New Excel.ApplicationOn Error Resume NextDoEventsExcelapp.SheetsInNewWorkbook = 1Excelapp.Workbooks.AddExcelapp.ActiveSheet.Cells(1, 3) = sExcelapp.Range("C1").SelectExcelapp.Selection.Font.FontStyle = "Bold"Excelapp.Selection.Font.Size = 16With Flexk = .RowsFor i = 0 To k - 1For j = 0 To .Cols - 1DoEventsExcelapp.ActiveSheet.Cells(3 + i, j + 1) = "'" & .TextMatrix(i, j)Next jNext iEnd WithMe.MousePointer = 0Excelapp.Visible = TrueExcelapp.Sheets.PrintPreviewErt:If Not (Excelapp Is Nothing) ThenExcelapp.QuitEnd IfEnd Sub一个按钮,点击出现对话框(对话框控件已经有),在硬盘里面查找excel文件(当然,后缀名是xls了),找到目标excel文件后,该excel文件里面是一些数据,点击确定,就可以把excel里面的内容保存到MSFlexGrid控件里面了还有一个,按钮,点击后出现对话框,可以保存MSFlexGrid里面的东西到一个excel里面谢谢大家了用CommonDialog可以解决选定打开.xls文件问题然后就是读取进去哈哈保存代码如下'添加command控件一个 MSFlexGrid控件一个Private Sub Command1_Click()On Error Resume NextDim fileadd As StringCommonDialog1.ShowOpenCommonDialog1.Filter = "xls文件(*.xls)|*.xls" '选择你要的文件fileadd = CommonDialog1.FileNameMSHFlexGrid1.Redraw = False '关闭表格重画,加快运行速度Set xlApp = CreateObject("Excel.Application") '创建EXCEL对象Set xlBook = xlApp.Workbooks.Open(fileadd) '打开已经存在的EXCEL工件簿文件xlApp.Visible = True '设置EXCEL对象可见(或不可见)Set xlsheet = xlBook.Worksheets("Sheet1") '设置活动工作表For R = 0 To MSHFlexGrid1.Rows - 1 '行循环For C = 0 To MSHFlexGrid1.Cols - 1 '列循环MSHFlexGrid1.Row = RMSHFlexGrid1.Col = CxlBook.Worksheets("Sheet1").Cells(R + 1, C + 1) = MSHFlexGrid1.Text '保存到EXCELNext CNext RMSHFlexGrid1.Redraw = TruexlApp.DisplayAlerts = False '不进行安全提示'Set xlsheet = Nothing'Set xlBook = Nothing'xlApp.Quit'Set xlApp = NothingEnd Sub。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

vb导出数据到Excel
Public Function ExporToExcel(strOpen As String,cn As ADODB.Connection) '入参为SQL查询语句,cn为当前活动的连接
'*********************************************************
'* 名称:ExporToExcel
'* 功能:导出数据到EXCEL
'* 用法:ExporToExcel(sql查询字符串)
'*********************************************************
Dim Rs_Data As New ADODB.Recordset
Dim Irowcount As Integer
Dim Icolcount As Integer
Dim FILENAME As String
Dim xlApp As New Excel.Application
Dim xlBook As Excel.Workbook
Dim xlSheet As Excel.Worksheet
Dim xlQuery As Excel.QueryT able
With Rs_Data
If .State = adStateOpen Then
.Close
End If
.ActiveConnection = Cn
.CursorLocation = adUseClient
.CursorType = adOpenStatic
.LockType = adLockReadOnly
.Source = strOpen
.Open
End With
With Rs_Data
If .RecordCount < 1 Then
MsgBox ("没有记录!")
Exit Function
End If
'记录总数
Irowcount = .RecordCount
'字段总数
Icolcount = .Fields.Count
End With
Set xlApp = CreateObject("Excel.Application")
Set xlBook = Nothing
Set xlSheet = Nothing
Set xlBook = xlApp.Workbooks().Add
Set xlSheet = xlBook.Worksheets("sheet1")
xlApp.Visible = False 'Excel在后台运行
'添加查询语句,导入EXCEL数据
Set xlQuery = xlSheet.QueryT ables.Add(Rs_Data, xlSheet.Range("a1"))
With xlQuery
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = True
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.PreserveColumnInfo = True
End With
xlQuery.FieldNames = True '显示字段名
xlQuery.Refresh
With xlSheet
' .Range(.Cells(1, 1), .Cells(1, Icolcount)) = "黑体"
'设标题为黑体字
.Range(.Cells(1, 1), .Cells(1, Icolcount)).Font.Bold = True
'标题字体加粗
.Range(.Cells(1, 1), .Cells(Irowcount + 1, Icolcount)).Borders.LineStyle = xlContinuous
'设表格边框样式
End With
With xlSheet.PageSetup
' .LeftHeader = "" & Chr(10) & "&""楷体_GB2312,常规""&10公司名称:" ' & Gsmc ' .LeftHeader = "" & Chr(10) & "&""楷体_GB2312,常规""&10统计时间:"
.CenterHeader = "&""楷体_GB2312,常规""库存明细&""宋体"
' .RightHeader = "" & Chr(10) & "&""楷体_GB2312,常规""&10单位:"
' .LeftFooter = "&""楷体_GB2312,常规""&10制表人:" & Ygxm
.CenterFooter = "&""楷体_GB2312,常规""&10制表日期:" & Date
.RightFooter = "&""楷体_GB2312,常规""&10第&P页共&N页"
End With
FILENAME = App.Path & "\" & Date & ".Xls"
xlBook.SaveAs (FILENAME) '保存文件
xlApp.Quit
Set xlApp = Nothing
' xlApp.Application.Visible = True
' Set xlApp = Nothing '"交还控制给Excel
' Set xlBook = Nothing
' Set xlSheet = Nothing
End Function。

相关文档
最新文档