有时候需要将Excel文件中的数据导入到数据库中,常用的做法是使用程序读取Excel,然后存入数据库;这里换一个方法,用Excel生成SQL语句,然后用这些SQL语句来更新数据库。
本文主要说明Excel如何使用VB宏构造需要的SQL语句,并生成文件。
2、如何添加按钮:
依次打开:视图–工具栏–控件工具箱,选择“命令按钮”,自己画一个就行了;
依次打开:右键–属性,可以修改名称、样式等。
具体操作可以上网找找。
3、如何使用VB宏:
依次打开:工具–宏–安全性,看看你的Excel是否允许使用“宏”。
然后打开:工具–宏–Visual Basic编辑器,双击左侧的“Sheet1”,然后在右侧的代码区域粘贴如下代码:
'最大行数
Const MAX_NUM_ROW=5000
'导出文件路径所在单元格
Const PATH_OUTPUT_ROW=3
Const PATH_OUTPUT_COL=3
'定义列常量
Const NAME_COL=1
Const GENDER_COL=2
Const PHONE_COL=3
Const EMAIL_COL=4
'读取数据开始行数
Const START_ROW=5
'定义数据实体类
Private Type Tmplt
NAME As String
GENDER As String
PHONE As String
EMAIL As String
End Type
'行数变量
Dim noOfTmplts As Integer
'数据实体类数组
Dim TmpltArray(MAX_NUM_ROW)As Tmplt
'点击按钮触发事件
Private Sub CommandButton1_Click()
generateSQL
End Sub
'生成SQL
Private Sub generateSQL()
makedir
initData
writeToFile
End Sub
'构建文件输出路径
Private Sub makedir()
On Error Resume Next
MkDir Sheet1.Cells(PATH_OUTPUT_ROW,PATH_OUTPUT_COL)
End Sub
'读取Excel数据,填充实体类数组
Private Sub initData()
Erase TmpltArray
noOfTmplts=0
Dim j As Integer
'循环读取Excel数据行
For j=START_ROW To MAX_NUM_ROW
TmpltArray(noOfTmplts).NAME=Sheet1.Cells(j,NAME_COL) TmpltArray(noOfTmplts).GENDER=Sheet1.Cells(j,GENDER_COL) TmpltArray(noOfTmplts).PHONE=Sheet1.Cells(j,PHONE_COL) TmpltArray(noOfTmplts).EMAIL=Sheet1.Cells(j,EMAIL_COL) noOfTmplts=noOfTmplts+1
Next
End Sub
'读取实体类数组,生成SQL并写入文件
Private Sub writeToFile()
Dim lvOutputPath As String
'输出文件路径
lvOutputPath=Sheet1.Cells(PATH_OUTPUT_ROW,PATH_OUTPUT_COL) If lvOutputPath=""Then
MsgBox"没有找到输出文件路径!"
Exit Sub
End If
fileNum=FreeFile
'打开输出文件
Open lvOutputPath For Output As fileNum
Dim lvUserSql As String
Dim nameStr As String
Dim genderStr As String
Dim phoneStr As String
Dim emailStr As String
'循环生成SQL
For j=0To noOfTmplts-1
nameStr=TmpltArray(j).NAME
genderStr=TmpltArray(j).GENDER
phoneStr=TmpltArray(j).PHONE
emailStr=TmpltArray(j).EMAIL
If nameStr<>""Then
lvUserSql="Insert into Students(name,gender,phone,email)values('"&nameStr&"','"& genderStr&"','"&phoneStr&"','"&emailStr&"');"
Print#fileNum,lvUserSql
End If
Next
Close fileNum
MsgBox"文件生成完成!"
Exit Sub
Err_Open_File:
Close lvFileNum
If Err.Number=76Then
'路径未找到
MsgBox Err.Description
Exit Sub
Else
MsgBox Err.Description
Exit Sub
End If
End Sub
OK,这样就可以了!点击你的按钮,看看生成文件了吗?
如果按钮还是编辑状态,关了再打开就行了。