中易网

怎样用vb打开excel表,并将excel中的项插入到sql的对应表中?

答案:2  悬赏:10  
解决时间 2021-10-13 06:37
怎样用vb打开excel表,并将excel中的项插入到sql的对应表中?
最佳答案
用EXCEL对象读取EXCEL文件中数据.然后通过ADODB连接SQL进和导入
下面是EXCEL对象的详解

1 前言

做为一种简捷、系统的 Windows应用程序开发工具,VB具有强大的数据处理功能,提供了多种数据访问方法,可以方便地存取Microsoft SQL Server、Oracle、XBase等多种数据库,被广泛应用于建立各种信息管理系统。但是,VB缺乏足够的、符合中文习惯的数据表格输出功能,虽然使用Crystal Report控件及 Crystal Reports程序可以输出报表,但操作起来比较麻烦,中文处理能力也不理想。Excel在表格方面有着强大的功能,我们可以用VB编写直接控制Excel操作的程序,方法是用VB的OLE自动化技术获取Excel的控制句柄,从而直接控制Excel的一系列操作。本文结合自己的实践和体会,谈谈如何在VB6.0应用程序中调用Exce12000,供大家参考。

2 Excel对象模型

 为了在VB应用程序中调用Excel,必须要了解Excel对象模型。Excel对象模型描述了Excel的理论结构,所提供的对象很多,涉及VB调用Excel时最可能用到的对象有:
http://www.deepcast.net/wiki/ow.asp?p=Excel%B6%D4%CF%F3%C4%A3%D0%CD&a=print

3 调用Excel

在VB应用程序中调用Excel,实质是将Excel作为一个外部对象来引用,由Excel对象模型提供能从VB应用程序内部来程序化操纵的对象以及相关的属性、方法和事件。

3.1  在VB工程中添加对Excel类型库的引用

为了能从VB应用程序中访问Excel丰富的内部资源,使Excel应用程序运行得更快,需要在VB工程中添加对Excel类型库的引用。具体步骤如下:

1) 在VB应用程序中调用Excel,你的计算机系统中必须安装Excel。从VB5“工程”菜单中选择“引用”;

2) 在“引用”对话框中选择Excel类型库:"Microsoft Excel9.0 Object Library";

3) 单击左边小方框,使之出现“√”符号;

4) 按“确定”退出。

3.2  引用Application对象

Application对象是Excel对象模型的顶层,表示整个Excel应用程序。在VB应用程序中调用Excel,就是使用Application对象的属性、方法和事件。为此,首先要声明对象变量:  

Dim VBExcel As Object

或直接声明为Excel对象:

Dim VBExcel As Excel.Application

在声明对象变量之后,可用CreateObject函数或GetObject函数给变量赋值新的或已存在的Application对象引用。

1)用CreateObject函数生成新的对象引用:

Set VBExcel=CreateObject ("Excel.Application")

字符串“Excel.Application”是提供Excel应用程序的编程ID,这个变量引用Excel应用程序本身。

2)用GetO场ect函数打开已存在的对象引用:

Set AppExcel=GetObject("Temp.XLS")

上面语句打开文件Temp.XLS。

3)Application对象常用的属性、方法

Visible属性取True或False,表明Excel应用程序是否可见。

Left,Top属性Excel窗口的位置;

Height, Width属性Excel窗口的大小;

WindowState属性指定窗口的状态;

Quit方法,退出Microsoft Excel;

Calculate方法,重新计算所有打开的工作簿、工作表或单元格。

Evaluate方法,求值数学表达式并返回结果。

3.3  使用Excel应用程序

下面分类给出其中常用的属性和方法。

1)使用工作薄

Workbook对象代表Excel应用程序中当前打开的一个工作簿,包含在Workbooks集合中。可以通过Workbooks集合或表示当前活动工作簿的Active Workbook对象访问Workbook对象。

常用的方法有:

Add方法:创建新的空白工作簿,并将其添加到集合中。

Open方法:打开工作簿。

Activate方法:激活工作簿,使指定工作簿变为活动工作簿,以便作为Active Workbook对象使用。

Save方法:按当前路径和名称保存现有工作簿(如是首次保存,则将其保存到缺省名称中,如BOOK1.XLS)。

SaveAs方法:首次保存工作簿或用另一名称保存工作簿。

Close方法:关闭工作簿。

PrintOut方法:打印工作簿,语法为:

PrintOut (from, To, Copies, Preview, Printer, ToFile, Collate)
全部回答
用EXCEL对象读取EXCEL文件中数据.然后通过ADODB连接SQL进和导入 下面是EXCEL对象的详解 1 前言 做为一种简捷、系统的 Windows应用程序开发工具,VB具有强大的数据处理功能,提供了多种数据访问方法,可以方便地存取Microsoft SQL Server、Oracle、XBase等多种数据库,被广泛应用于建立各种信息管理系统。但是,VB缺乏足够的、符合中文习惯的数据表格输出功能,虽然使用Crystal Report控件及 Crystal Reports程序可以输出报表,但操作起来比较麻烦,中文处理能力也不理想。Excel在表格方面有着强大的功能,我们可以用VB编写直接控制Excel操作的程序,方法是用VB的OLE自动化技术获取Excel的控制句柄,从而直接控制Excel的一系列操作。本文结合自己的实践和体会,谈谈如何在VB6.0应用程序中调用Exce12000,供大家参考。 2 Excel对象模型  为了在VB应用程序中调用Excel,必须要了解Excel对象模型。Excel对象模型描述了Excel的理论结构,所提供的对象很多,涉及VB调用Excel时最可能用到的对象有: http://www.deepcast.net/wiki/ow.asp?p=Excel%B6%D4%CF%F3%C4%A3%D0%CD&a=print 3 调用Excel 在VB应用程序中调用Excel,实质是将Excel作为一个外部对象来引用,由Excel对象模型提供能从VB应用程序内部来程序化操纵的对象以及相关的属性、方法和事件。 3.1  在VB工程中添加对Excel类型库的引用 为了能从VB应用程序中访问Excel丰富的内部资源,使Excel应用程序运行得更快,需要在VB工程中添加对Excel类型库的引用。具体步骤如下: 1) 在VB应用程序中调用Excel,你的计算机系统中必须安装Excel。从VB5“工程”菜单中选择“引用”; 2) 在“引用”对话框中选择Excel类型库:"Microsoft Excel9.0 Object Library"; 3) 单击左边小方框,使之出现“√”符号; 4) 按“确定”退出。 3.2  引用Application对象 Application对象是Excel对象模型的顶层,表示整个Excel应用程序。在VB应用程序中调用Excel,就是使用Application对象的属性、方法和事件。为此,首先要声明对象变量:   Dim VBExcel As Object 或直接声明为Excel对象: Dim VBExcel As Excel.Application 在声明对象变量之后,可用CreateObject函数或GetObject函数给变量赋值新的或已存在的Application对象引用。 1)用CreateObject函数生成新的对象引用: Set VBExcel=CreateObject ("Excel.Application") 字符串“Excel.Application”是提供Excel应用程序的编程ID,这个变量引用Excel应用程序本身。 2)用GetO场ect函数打开已存在的对象引用: Set AppExcel=GetObject("Temp.XLS") 上面语句打开文件Temp.XLS。 3)Application对象常用的属性、方法 Visible属性取True或False,表明Excel应用程序是否可见。 Left,Top属性Excel窗口的位置; Height, Width属性Excel窗口的大小; WindowState属性指定窗口的状态; Quit方法,退出Microsoft Excel; Calculate方法,重新计算所有打开的工作簿、工作表或单元格。 Evaluate方法,求值数学表达式并返回结果。 3.3  使用Excel应用程序 下面分类给出其中常用的属性和方法。 1)使用工作薄 Workbook对象代表Excel应用程序中当前打开的一个工作簿,包含在Workbooks集合中。可以通过Workbooks集合或表示当前活动工作簿的Active Workbook对象访问Workbook对象。 常用的方法有: Add方法:创建新的空白工作簿,并将其添加到集合中。 Open方法:打开工作簿。 Activate方法:激活工作簿,使指定工作簿变为活动工作簿,以便作为Active Workbook对象使用。 Save方法:按当前路径和名称保存现有工作簿(如是首次保存,则将其保存到缺省名称中,如BOOK1.XLS)。 SaveAs方法:首次保存工作簿或用另一名称保存工作簿。 Close方法:关闭工作簿。 PrintOut方法:打印工作簿,语法为: PrintOut (from, To, Copies, Preview, Printer, ToFile, Collate) 可选参数: From:打印的起始页号,如省略将从起始位置开始打印。 To:打印的终止页号,如省略将打印至最后一页。 Copies:要打印的份数,如省略将只打印一份。 Preview:如果为True则Excel打印指定对象之前进行打印预览。如果为False或省略则立即打印该对象。 Printer:设置活动打印机的名称。 ToFile:如果为True则打印输出到文件。 Collate:如果为True则逐份打印每份副本。 下面语句将活动工作簿的2到5页打印3份: ActiveWorkbook.PrintOut From:=2 To 5 Copies:=3   2)使用工作表 Sheets集合表示工作簿中所有的工作表。可以通过Sheets集合来访问、激活、增加、更名和删除工作表。一个Worksheet对象代表一个工作表。 常用的属性、方法有: Worksheets属性:返回Sheets集合。 Name属性:工作表更名。 Add方法:创建新工作表并将其添加到工作簿中。 Select方法:选择工作表。 Copy方法:复制工作表。 Move方法:将指定工作表移到工作簿的另一位置。 Delete方法:删除指定工作表。 PrintOut方法:打印工作表。 示例:将C盘工作簿中的工作表复制到A盘工作簿中: Dim VBExcel As Excel.Application Set VBExcel=CreateObject("Excel.Application") With VBExcel Workbooks.Open "C:\Temp\Ex1.XLS" Workbooks.Open"A:\Ex2.XLS" Workbooks("Ex1.XLS").Sheets ("Sales").Copy Workbooks("Ex2.XLS") Workbooks("Ex2.XLS").Save Workbooks("Ex1.XLS").Close Workbooks("Ex2.XLS").Close Quit End With 3)使用单元范围 Range对象代表工作表的某一单元格、某一行、某一列、某一选定区域或者某一三维区域。 常用的属性、方法有:  Range属性:Range (arg)其中arg为A1样式符号,表示单个单元格或单元格区域。  Cells属性:Cells (row, col )(其中row为行号,col为列号)表示单个单元格。  ColumnWidth属性:指定区域中所有列的列宽。  Rowl3eight属性:指定区域中所有行的行宽。  Value属性:指定区域中所有单元格的值(缺省属性)。  Formula属性:指定单元格的公式,由A1--样式引用。  Select方法:选择范围。  Copy方法:将范围的内容复制到剪贴板。  C1earContents方法:清除范围的内容。  Delete方法:删除指定单元范围。 4)使用图表 Chart对象代表工作簿中的图表。该图表既可为嵌人式图表(包含于ChartObject对象中)也可为分立的图表工作表。 常用方法有: Add方法:新建图表工作表,返回Chart对象。 PrineOut方法:打印图表。 ChartWizard方法:修改给定图表的属性,其语法为: ChartWizard(Source, Gallery, Format, P1otBy, CategoryLabels,  SeriesLabels, HasLegend, Title, CategoryTitle, ValueTitle, ExtraTitle) 其中: Source:包含新图表的源数据的区域。如省略,将修改活动图表工作表或活动工作表中处于选定状态的嵌人式图表。 Gallery:图表类型,其值可为下列常量之一:xlArea, x1Bar, xlColumn, xlLine, x1Pie, xlRadar,x1XYScatter, xlCombination, x13DArea, x13Dbar,x13DColumn, x13DLine, x13Dpie,x13 Dsurface,xlDoughnut或xlDefaultAutoFormat。 Format:内置自动套用格式的编号。如省略,将选择默认值。 P1otBy:指定系列中的数据是来自行(xlRows)还是列(xlColumns)。 CategoryLabels:表示包含分类标志的源区域内行数或列数的整数。 SeriesLabels:表示包含系列标志的源区域内行数或列数的整数。 HasLegend:若指定True,则图表将具有图例。 Title:图表标题文字。 CategoryTitle:分类轴标题文字。 ValueTitle:数值轴标题文字。 ExtraTitle:三维图表的系列轴标题,或二维图表的第二数值轴标题。 可组合使用Add方法和ChartWizard方法,以创建包含工作表中数据的图表工作表。下例基于工作表“Sheetl”中单元格区域“A1:A20”中的数据生成新的折线图并打印。 With Charts.Add ChartWizard source:=Worksheets ("sheet1").Range_ ("a1:a20"),gallery:=xlLine, title:=“折线图表” Printout End With 5)使用Excel工作表函数 在VB语句中可使用大部分的Excel工作表函数,可通过WorksheetFunction对象调用Excel工作表函数。下面的Sub过程用Min工作表函数求出指定区域中单元格的最小值,并通过消息框显示结果值。  Sub UserFunction()     Dim myRange As Range         Set myRange=Worksheets ("Sheet1").Range("B2:F10")         answer=Application.WorksheetFunction.Min(myRange)         MsgBox answer  End Sub 如果使用以区域引用为参数的工作表函数,必须指定一个Range对象。如可用Match工作表函数对A1:A10区域的所有单元格进行搜索。  Sub FindFirst() myVar=Application.WorksheetFunction.Match_ (9,orksheets( 1).Range("A1:A10"),0)  MsgBox myVar End Sub 要在单元格中插人工作表函数,可将该函数指定为对应于Range对象的Formula属性值。在以下示例中,将当前工作簿Sheetl内A1:B3区域的Formula属性指定为RAND工作表函数(此函数产生二个随机数)。  Sub InsertFormula()      Worksheets ("Sheet1" ).Range("A1:B3").Formula="RAND()"  End Sub 以上简要介绍了Excel对象模型中部分对象及其属性和方法,更详细的信息可参阅Excel 2000帮助中的“Microsoft Excel Visual Basic参考”一节的内容。实际上,Microsoft Office家族的Word,PowerPoint, Access和Project等应用程序都可以在VB应用程序中调用,其原理和步骤完全相同,只是其对象模型有所不同而已。 4、示例: 首先建立一个窗体(FORM1),在窗体中加入一个DATA控件和一按钮,引用Microsoft office/9.shtml' target='_blank' class='article'>Excel类型库:从"工程"菜单中选择"引用"栏;选择Microsoft Excel 9.0 Object Library;选择"确定"。 在FORM的LOAD事件中加入: Data1.DatabaseName = 数据库名称 Data1.RecordSource = 表名 Data1.Refresh 在按钮的CLICK事件中加入  Dim Irow, Icol As Integer  Dim Irowcount, Icolcount As Integer  Dim Fieldlen() "存字段长度值  Dim xlApp As Excel.Application  Dim xlBook As Excel.Workbook  Dim xlSheet As Excel.Worksheet  Set xlApp = CreateObject("Excel.Application")  Set xlBook = xlApp.Workbooks.Add  Set xlSheet = xlBook.Worksheets(1)  With Data1.Recordset.MoveLast    If .RecordCount < 1 Then       MsgBox ("Error 没有记录!")       Exit Sub     End If    Irowcount = .RecordCount "记录总数    Icolcount = .Fields.Count "字段总数    ReDim Fieldlen(Icolcount).MoveFirst    For Irow = 1 To Irowcount + 1     For Icol = 1 To Icolcount      Select Case Irow       Case 1 "在Excel中的第一行加标题           xlSheet.Cells(Irow, Icol).Value = .Fields(Icol - 1).Name       Case 2 "将数组FIELDLEN()存为第一条记录的字段长         If IsNull(.Fields(Icol - 1)) = True Then           Fieldlen(Icol) = LenB(.Fields(Icol - 1).Name)         Else           Fieldlen(Icol) = LenB(.Fields(Icol - 1))         End If         xlSheet.Columns(Icol).ColumnWidth = Fieldlen(Icol)         xlSheet.Cells(Irow, Icol).Value = .Fields(Icol - 1)       Case Else         Fieldlen1 = LenB(.Fields(Icol - 1))         If Fieldlen(Icol) < Fieldlen1 Then           xlSheet.Columns(Icol).ColumnWidth = Fieldlen1          Fieldlen(Icol) = Fieldlen1         Else           xlSheet.Columns(Icol).ColumnWidth = Fieldlen(Icol)         End If         xlSheet.Cells(Irow, Icol).Value = .Fields(Icol - 1)       End Select      Next      If Irow <> 1 Then       If Not .EOF Then .MoveNext      End If    Next   With xlSheet    .Range(.Cells(1, 1), .Cells(1, Icol - 1)).Font.Name = "黑体"    .Range(.Cells(1, 1), .Cells(1, Icol - 1)).Font.Bold = True   .Range(.Cells(1, 1), .Cells(Irow, Icol - 1)).Borders.LineStyle = xlContinuous   End With       xlApp.Visible = True xlBook.Save  Set xlApp = Nothing End With
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
请问皮肤黄是由什么原因造成的?有什么办法变
干电池如何提供电
曲阳哪里购买沙地柏
山东烟台栖霞开锁那里去?那家 价钱最公道,
如何挑选抽油烟机?
昌平沃尔玛超市有电动车吗
天津个人车辆如何过户到公司名下需要什么手续
高明图书馆网络信息阅览室地址在哪,我要去那
中柏jk01tt平板电脑黑屏怎么装系统?
电信wifi帐号密码该怎么更改?
我手上长茧了,怎么去除
身边的人都说青松老年专业护理好,说居家养老
请问辽宁盘锦有专业销售及维修螺杆空压机的公
舌苔发红
应聘沙石料场铲车司机需要什么证件
推荐资讯
脚上长了瘊子,怎么办?
重庆富士康园区在西永微电子园的哪个方位?具
左花1970店地址在哪,我要去那里办事,
谁清楚八字晚婚是多少岁
寿宁县西浦村怎么才走
2011山东物业管理员考试考哪些科目?(是劳动
北斗卫星导航系统在传递信息过程中主要靠什么
HP惠普电脑解决硬盘分区问题
谁知道墙角护角条哪种好?
镜子对门口好不好
梁平有什么地方好玩的
雅头地址在什么地方,想过去办事,
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?