当前位置:首页 » 编程语言 » vb中xls批量导入到sql中
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

vb中xls批量导入到sql中

发布时间: 2023-01-21 08:04:22

1. vb excel导入sql

直接into到sql

2. 使用VB将excel导入sql

EXCEL文件要设置固定格式,还要设置命名范围,然后才可以导入
大致思路如下:
'// 设置打开 EXCEL 文件的连接字符串
strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=excel文件名;Extended Properties=Excel 8.0"

'// 以记录集的形式打开 Excel 文件,adoConn 为 ADODB.Connection 对象
adoConn.Open strConn
'// 将数据插入到指定的表中(以ODBC的方式打开SQL数据库
strSQL = "INSERT INTO [odbc;Driver={SQL Server};Server=服务器IP;Database=数据库;UID=用户名;PWD=密码].SQL中的表名 SELECT EXCEL中的字段 FROM EXCEL工作表名"
'// 执行导入语句
adoConn.Execute strSQL, , adExecuteNoRecords

3. vb如何导入excel到SQL服务器

打开SQL Server的企业管理器,右击你现在使用中的SQL 数据库,所有数据--》导入数据--》选择数据源为:Microsoft Excel 97-2000--》选择要导入的Excel文件--》下一步--》填写目标数据库SQL 的验证密码--》如果要将Excel导入数据库中一个表中,就请按照提示选择表吧--》直接下一步--》直到出现成功提示!

4. 用VB编写一个导入EXCEL文件数据到SQL2000数据库中的程序,怎么编写的

操作方法如下:
1、导入Excel数据,同时创建表:
select * into 表名 FROMopenrowset( 'Microsoft.Jet.OLEDB.4.0','EXCEL 8.0;HDR=YES;IMEX=1;DATABASE=文件路径','select* from [Excel表名(默认为Sheet1)$]')。
2、在表中插入Excel数据:
insert into 表名 select * fromopenrowset( 'Microsoft.Jet.OLEDB.4.0','EXCEL 8.0;HDR=YES;IMEX=1; DATABASE=文件路径','select * from [Excel表名(默认为Sheet1)$]')。
3、导出数据到Excel中:
insert into openrowset('Microsoft.Jet.OLEDB.4.0','EXCEL 8.0;HDR=YES;IMEX=0; DATABASE=文件路径','select* from [Excel表名(默认为Sheet1)$]') select * from 表名;需要创建Excel文件并指定列名后才可以导出。

5. VB 把Excel中的内容批量导入SQL数据库

Students表中有一个字段的数据类型是image!!!为什么要是image类型 你插入的数据 照片的那个字段 是varchar类型 当然会冲突 一般照片存放 都不会用image类型 一般是用varchar来存放 照片的路径!!!

6. 怎样用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)

可选参数:

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

7. vb中将excel表导入到sql中相同结构的数据表中

下面是导入按钮COMMAND1_CLICK里面的代码
text4为显示读取文件路径的。
IfTrim(Text4.Text)=""Then
MsgBox"请选择导入的路径!",vbInformation,Me.Caption
Text4.SetFocus
ExitSub
EndIf
IfMsgBox("确实要导入信息吗?",vbQuestion+vbYesNo,Me.Caption)=vbNoThen
ExitSub
EndIf
MousePointer=11
'EXCEL导入
CallImportZJZHXX(Trim(Text4.Text&"文件名.xls"))

===========================

以下是导入的方法

'通过Excel导入数据库中
Private Function ImportZJZHXX(ByVal strExcelFile As String) As Boolean
Dim ExcelApp As Excel.Application
Dim ExcelSheet As Excel.Worksheet
Dim sql As String
Dim Hzrs As New ADODB.Recordset

Dim gcnData As ADODB.Connection

Dim icount1 As Integer
Dim i As Integer

gcnData.Open "Provider=MSDAORA.1;Password=dzcs;User ID=dzcs;Data Source=ORCL_72.11"

On Error GoTo ErrHandler

If strExcelFile = vbNullString Then
MsgBox "没有Excel文件!", vbInformation, Me.Caption
Exit Function
End If

Me.MousePointer = vbHourglass
Set ExcelApp = CreateObject("Excel.Application")
ExcelApp.Workbooks.Open FileName:=strExcelFile
Set ExcelSheet = ExcelApp.ActiveSheet

If ExcelSheet.UsedRange.Rows.Count > 1 Then
Hzrs.Open "select * from JjHkXx where 1=2", gcnData, adOpenKeyset, adLockOptimistic
For i = 2 To ExcelSheet.UsedRange.Rows.Count
Hzrs.AddNew
Hzrs!fsetcode = Trim(ExcelSheet.Cells(i, 1))

Hzrs!FskDw = Trim(ExcelSheet.Cells(i, 2))
Hzrs!FSkRen = Trim(ExcelSheet.Cells(i, 4))
Hzrs!fskbank = Trim(ExcelSheet.Cells(i, 5))

Hzrs.Update
icount1 = icount1 + 1
Next

Hzrs.Close
Else
Me.MousePointer = vbDefault
MsgBox "Excel文件中没有数据,请检查!", vbOKOnly + vbInformation, Me.Caption
Exit Function
End If

ExcelApp.ActiveWorkbook.Close False
ExcelApp.Quit
Set ExcelSheet = Nothing
Set ExcelApp = Nothing

MsgBox "导入信息成功,总行数 :" & icount1, vbOKOnly + vbInformation, Me.Caption

Me.MousePointer = vbDefault
ImportZJZHXX = True

Exit Function

ErrHandler:
If err.Number <> 0 Then
MsgBox "导入信息失败,原因可能是:" & err.Description, vbOKOnly + vbInformation, Me.Caption
Me.MousePointer = vbDefault
ImportZJZHXX = False
End If
End Function