当前位置: 代码迷 >> Delphi >> 怎么用delphi语言将硬盘中excel数据导入到sql 中
  详细解决方案

怎么用delphi语言将硬盘中excel数据导入到sql 中

热度:1126   发布时间:2016-05-05 01:18:58.0
如何用delphi语言将硬盘中excel数据导入到sql 中
我想将硬盘中特定文件夹中的几个excel表中的数据分别导入到几个数据库表中!用delphi语言实现!

------解决方案--------------------
在论坛里搜索“delphi excel”
------解决方案--------------------
这个不是很难,只要你excel命名规范
------解决方案--------------------
这个用 ADO 连接 Excel 即可办到。假设你的 Excel 里表的列定义与数据库里的表的列定义一致,就更好办了。以下的代码,示范如何从一个 Excel 文件提取表名,然后用 AODTable 打开某个表。如果要导出数据并插入到 DB,只需遍历 Excel 表记录,在 DB 做插入记录操作即可。
procedure Tcl2form.conntable(fName:string);
Var
    ConnStr: String;
    StrList:TSTringList;
begin
    ADOConnection1.Close;
    ADOTable1.Active := False;

    ConnStr := ConnStr + 'Provider=Microsoft.Jet.OLEDB.4.0;User Source=';
    ConnStr := ConnStr + fName;
    ConnStr := ConnStr + ';Mode=ReadWrite;Extended Properties=Excel 8.0;';
    ConnStr := ConnStr + 'Jet OLEDB:System database="";';
    ConnStr := ConnStr + 'Jet OLEDB:Registry Path="";';
    ConnStr := ConnStr + 'Jet OLEDB:Database Password="";';
    ConnStr := ConnStr + 'Jet OLEDB:Engine Type=35;';
    ConnStr := ConnStr + 'Jet OLEDB:Database Locking Mode=0;';
    ConnStr := ConnStr + 'Jet OLEDB:Global Partial Bulk Ops=2;';
    ConnStr := ConnStr + 'Jet OLEDB:Global Bulk Transaction_s=1;';
    ConnStr := ConnStr + 'Jet OLEDB:New Database Password="";';
    ConnStr := ConnStr + 'Jet OLEDB:Create System Database=False;';
    ConnStr := ConnStr + 'Jet OLEDB:Encrypt Database=False;';
    ConnStr := ConnStr + 'Jet OLEDB:Don''t Copy Locale on Compact=False;';
    ConnStr := ConnStr + 'Jet OLEDB:Compact Without Replica Repair=False;';
    ConnStr := ConnStr + 'Jet OLEDB:SFP=False';

    ADOConnection1.ConnectionString := ConnStr;
    ADOConnection1.LoginPrompt := False;
    ADOConnection1.Connected := true;  //连接excel;

    StrList:=TSTringlist.Create;
    ADOConnection1.GetTableNames(StrList,false);----目前发现如果EXCEL的表名是全部中文的话会获取不到,郁闷ING!还没解决!
    //showmessage(strlist[0]);
    ADOTable1.TableName := '[' + strlist[0] + ']'; //Edit1.Text 是excel的一个表名
    ADOTable1.Active := true; //打开一个表;
    STrlist.Free;

end;
  相关解决方案