当前位置:主页>仓库管理软件> 列表

谁能指点一下怎么将excel内容导入到数据库中去?有控件吗

企业管理软件版1楼: 谁能指点一下怎么将excel内容导入到数据库中去(以access为例)?有控件吗?谢谢!

2楼: 设好ADOConnection1,(连接到Access数据库)
ADOConnection1.Execute(''SELECT * into [表名] FROM [excel 8.0;database=文件名.xls].[sheet1$]'');
刚试过完全OK,别说不行。 如万能档案管理软件

3楼: 在查询分析器中执行以下命令:
insert into OPENROWSET(''Microsoft.Jet.OLEDB.4.0'',
''E:\DataTransmit\DataTrans\Datatrans-V3\TransDataDB1.mdb'';''admin'';'''', testdata)
(userid,synum,grou_table,xmid,curorder,maxload,testdate,testtime)

select userid,synum,grou_table,xmid,curorder,maxload,testdate,testtime
FROM OpenDataSource( ''Microsoft.Jet.OLEDB.4.0'',
''Data Source="E:\DataTransmit\DataTrans\Datatrans-V3\Data20050929.xls";User ID=Admin;Password=;Extended properties=Excel 5.0'')...Data20050929$


测试通过!
注意,Data20050929.xls文件不能有单元格合并

4楼: SMImport控件就有实现这个功能的

另用DELPHI自带的EXCEL组件ExcelApplication,ExcelWorkSheet等也行,示例如下
先加入 ExcelApplication1;ExcelWorkbook1;ExcelWorksheet1;

procedure TForm1.n1Click(Sender: TObject);

var

row,brea:integer;

a,b,c,d,e:shortstring;

begin

if table1.active = True then begin

try

ExcelApplication1.Connect;

Except

ExcelApplication1.free;

Abort;

end;

brea := strtoint(inputbox('' 输入需导入行数! '','' 行数 '',''10''));

if brea<1 then brea := 10;

ProgressBar1.Visible := True;

ProgressBar1.Max := brea;

ExcelApplication1.Visible[0] := true;

for row := 2 to brea do

begin

a := ExcelWorksheet1.Cells.Item[row,2];

b := ExcelWorksheet1.Cells.Item[row,1];

c := ExcelWorksheet1.Cells.Item[row,3];

d := ExcelWorksheet1.Cells.Item[row,4];

e := ExcelWorksheet1.Cells.Item[row,5];

form1.show;

table1.AppendRecord([a,b,c,d,e]);

ProgressBar1.Position := row-1;

end;

ProgressBar1.Hide;

end;

end;

5楼: 还有,
将Excel文件作为数据库,使用ADO+JET连接后直接操作。
详见Delphi数据库程序设计,杨宗志,清华大学出版社

6楼: 达人们太热情,作为新手的我真是感动啊 !

企业管理软件版7楼: 分钱,分钱

8楼: 推荐:
异构数据库之间完全可以用SQL语句导数据。大家抛弃BatchMove吧 如果觉得好请Up一下,如果觉得不好也请Up一下
http://www.delphibbs.com/delphibbs/dispq.asp?lid=1691966

9楼: 哇,楼上兄弟这个详细,好!