Server
Management
Studio,按图中的路径进入导入数据界面。
2.导入的时候需要将EXCEL的文件准备好,不能打开。点击下一步。
3.数据源:选择“Microsoft
Excel”除了EXCEL类型的数据,SQL还支持很多其它数据源类型。
4.选择需要导入的EXCEL文件。点击浏览,找到导入的文件确定。
5.再次确认文件路径没有问题,点击下一步。
6.默认为是使用的WINODWS身份验证,改为使用SQL身份验证。输入数据库密码,注意:数据库,这里看看是不是导入的数据库。也可以在这里临时改变,选择其它数据库。
7.选择导入数据EXCEL表内容范围,若有几个SHEET表,或一个SHEET表中有些数据不想导入,则可以编写查询指定的数据进行导入。点击下一步。
8.选择需要导入的SHEET表,比如在这里将SHEET表名改为price,则导入后生面的SQL数据库表为price$。点击进入下一步。
9.点击进入下一步。
10.在这里完整显示了导入的信息,执行内容,再次确认无误后,点击完成,开始执行。
11.可以看到任务执行的过程和进度。
12.执行成功:可以看看执行结果,已传输1754行,表示从EXCEL表中导入1754条数据,包括列名标题。这样就完成了,执行SQL查询语句:SELECT
*
FROM
price$就可以查看已导入的数据内容。
procedure TphoneForm.BitBtn1Click(Sender: TObject)var
F: Textfile
filename,s,str2,str3,sql:string
begin
//------------判断是否打开文件-------
if opendialog1.Execute and fileExists(opendialog1.FileName) then
begin
filename:=opendialog1.FileName
str2:=ExtractFileDir(filename)//获得路径
str3:=copy(filename,length(str2)+2,length(filename)-length(str2)-1)//获得文件名
//////////////////////导入txt文件第一条数据到数据
AssignFile(F, filename)//将文件名与变量 F 关联
Reset(F)
Readln(F,s)
if s<>'' then
begin
with dm.ADOQuery_temp2 do
begin
Close
SQL.Clear
SQL.Add('insert into temp(phone) values (:a)')
Parameters[0].Value:=s
ExecSQL
end
end
closefile(F)
/////快速导入txt文件,因为这个方法的第一条数据被默认为字段名,所以我才用这么笨的方法
Sql :='insert into temp select * from OpenRowset('+''''+'MSDASQL'+''','+ ''''+'Driver={Microsoft Text Driver (*.txt*.csv)}DefaultDir='+str2+''''+','+''''+'select * from '+str3+''''+')'
with dm.ADOConnection1 do
begin
Connected:=true
Execute(Sql)
end
end
////////////////////////////////////////////////////////////////
end
SQL——>.txt:
procedure TphoneForm.BitBtn2Click(Sender: TObject)
var
F:Textfile
sql,str,filename:string
begin
SaveDialog1.Filter:='*.txt'
if SaveDialog1.Execute then
begin
filename:=SaveDialog1.FileName
AssignFile(F,filename)//关联文件
ReWrite(F)
sql:='select phone from phone '
dm.ADOQuery_phone.Close
dm.ADOQuery_phone.SQL.Clear
dm.ADOQuery_phone.SQL.Add(sql)
dm.ADOQuery_phone.Open
if dm.ADOQuery_phone.RecordCount>0 then
begin
while not dm.ADOQuery_phone.Eof do
begin
str:=dm.ADOQuery_phone.fieldbyname('phone').AsString
Writeln(F,str)//每行写一条数据
dm.ADOQuery_phone.Next
end
Closefile(F)
showmessage('导出完毕!')
end
end
end
TXT->Access:
procedure TForm1.Button2Click(Sender: TObject)
var
ssql:string
begin
sSql := 'select * into form from [TextDatabase=d:\].3.txt'
with AccessConnection do
begin
Connected := True
Execute(sSql)
end
end
Access->txt:
procedure TForm1.Button1Click(Sender: TObject)
var
ssql:string
begin
sSql := 'select * into [TextDatabase=d:\].aaa.txt from form'
with AccessConnection do
begin
Connected := True
Execute(sSql)
end
end
1.首先需要通过ODAC或者ADO等方式将数据库某张表进行关联(DBGRID显示)2.导入:循环行循环列,对比导入的格式中的标题和当前表格中显示的一致,根据字段类型将数据转换赋值
3.导出:循环列、行依次将数据填写到excel或者text里
推荐一种第三方组件,SMIMPORT、SMExport 导入导出,只要将其绑定数据集,开始行、导入的模式以及导入的源文件名就可以了,要比循环行、列的方式要简单很多,并且在速度上也有很大的提升的!不过目前我使用中发现SMImport导入excel的时候,出现那种“±”的形式会变成“?”
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)