delphi如何把excel表导入sql server里面???

ithhh2007 2008-01-14 06:43:33
delphi如何把excel表导入sql server里面???


delphi如何写代码实现.谢谢各位..
...全文
283 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
gzclove 2008-01-16
  • 打赏
  • 举报
回复
procedure TForm1.btn1Click(Sender: TObject);
var
i,j: integer;
ExcelApplication1:TExcelApplication;
ExcelWorksheet1:TExcelWorksheet;
ExcelWorkbook1:TExcelWorkbook;
filename: string;
begin
btn2Click(Self);
filename:=Edt_1.Text;//文件名
try
ExcelApplication1:=TExcelApplication.Create(Application);
ExcelWorksheet1:=TExcelWorksheet.Create(Application);
ExcelWorkbook1:=TExcelWorkbook.Create(Application);
ExcelApplication1.Connect;
except
Application.Messagebox('Excel没有安装!', 'Hello', MB_ICONERROR + mb_Ok);
Abort;
end;

Try
ExcelWorkbook1.ConnectTo(ExcelApplication1.Workbooks.Open(fileName,EmptyParam,EmptyParam,
EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,
EmptyParam,EmptyParam,EmptyParam,EmptyParam,0));

ExcelWorkbook1.ConnectTo(ExcelApplication1.Workbooks[1]);
ExcelWorksheet1.ConnectTo(ExcelWorkbook1.Worksheets[1] as _worksheet);
Except
Exit;
end;
i :=2;//开始导入行数
j := ExcelApplication1.Rows.Count;




try
tblTA.Open; //要导入的表
while i<=j do
begin
if trim(ExcelWorksheet1.cells.item[i,1])<>'' then
begin
tblTA.AppendRecord([
ExcelWorksheet1.Cells.Item[i,1],//第i行第1列.
ExcelWorksheet1.Cells.Item[i,2],//第i行第2列.
ExcelWorksheet1.Cells.Item[i,3],//第i行第3列.
ExcelWorksheet1.Cells.Item[i,4],//第i行第1列.
ExcelWorksheet1.Cells.Item[i,5],//第i行第2列.
ExcelWorksheet1.Cells.Item[i,6],//第i行第3列.
ExcelWorksheet1.Cells.Item[i,7],//第i行第1列.
ExcelWorksheet1.Cells.Item[i,8],//第i行第2列.
ExcelWorksheet1.Cells.Item[i,9],//第i行第3列.
ExcelWorksheet1.Cells.Item[i,10],//第i行第3列.
ExcelWorksheet1.Cells.Item[i,11]//第i行第3列.
]);

end else Break;
Inc(i);
end;
finally
tblTA.close;
tblTA.Open;
showMessage('数据导入完毕!');
end;

try
ExcelApplication1.Disconnect;
ExcelApplication1.Quit;
ExcelApplication1.Free;
ExcelWorksheet1.Free;
ExcelWorkbook1.Free;
except
showMessage('关闭出错!');
end;

end;
阿三 2008-01-16
  • 打赏
  • 举报
回复
对于Excel与表的结构不同的可以用代码实现.
参照一下这里面的内容
http://topic.csdn.net/u/20080112/10/93eddbf1-cbd7-4cf0-81d1-ac6cf1c0d68d.html
zhouchunyu 2008-01-15
  • 打赏
  • 举报
回复
procedure TForm1.Button1Click(Sender: TObject);
var
sql:string ;
begin
try
ADOConnection1.Provider :='Microsoft.Jet.OLEDB.4.0;Data Source=C:\temp\Temp.xls;Extended ' +
'Properties="Excel 8.0;HDR=Yes;";Persist Security Info=False' ;
ADOConnection1.Connected := False ;
ADOConnection1.Connected := True ;
sqll := 'SELECT * into SQLEXCEL FROM ' +
'OpenDataSource(''Microsoft.Jet.OLEDB.4.0'',''Data Source="C:\temp\Temp.xls";Extended Properties="Excel 5.0;HDR=Yes;";Persist Security Info=False'')...sheet1$' ;
ADOConnection1.Execute(sql ) ;
Application.MessageBox('导出数据成功 !', PChar('数据导入导出提示'), MB_OK +
MB_ICONINFORMATION + MB_TOPMOST);
except
Application.MessageBox('导出数据失败 !', PChar('数据导入导出提示'), MB_OK +
MB_ICONINFORMATION + MB_TOPMOST);
end;
end;
kugoo_2006 2008-01-15
  • 打赏
  • 举报
回复
liangpei2008
已经说了
还可以用server 下的控件 不过速度相对慢一点,用流的话速度最快

或者可用SQL SERVER下的DTS包转换
fa_ge 2008-01-15
  • 打赏
  • 举报
回复
楼上已写了
架构之路 2008-01-15
  • 打赏
  • 举报
回复
同意楼上
liangpei2008 2008-01-14
  • 打赏
  • 举报
回复
1.创建2个ADO连接,从Excel读数后写入SQL Server
2.用SQL的OpenDataSource函数
SELECT *
FROM OpenDataSource('Microsoft.Jet.OLEDB.4.0','Data Source="C:\temp\b.xls";Extended Properties="Excel 5.0;HDR=Yes;";Persist Security Info=False')...sheet1$
3.用SQL的SSIS
jxjjljf 2008-01-14
  • 打赏
  • 举报
回复
ding

2,507

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧