关于execl数据导入sql的问题或是execl通过delphi导入sql搜索了很多,都没有成功,有以下三种,很疑惑,到底有没有导入的方法呢?1.procedure TForm1.Button1Click(Sender: TObject);
var
sSql, mdbpath, xlspath: string;
begin
if (trim(edit1.Text) = '') or (trim(edit2.Text) = '') then
begin
MessageBox(GetActiveWindow(), '请正确选择相关路径!', '警告', MB_OK + MB_ICONWARNING);
exit;
end;
mdbpath := trim(edit1.Text); //MDB路径
xlspath := trim(edit2.Text); //Excel路径
ADOConnection1.Connected := False;
try
ADOConnection1.ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=' + mdbpath + ';Persist Security Info=False';
ADOConnection1.Connected := true;
try
//删除所有的记录
adoquery1.Close;
adoquery1.SQL.Clear;
sSql :='Delete * from Classes';
adoquery1.SQL.Text := sSql;
adoquery1.Execsql;
//添加记录
adoquery1.Close;
adoquery1.SQL.Clear;
sSql :='Insert into Classes (名次, 姓名, 性别, 总分)' + ' SELECT' + ' 名次, 姓名, 性别, 总分' + ' FROM [excel 8.0;database=' + xlspath + '].[Classes$]';
adoquery1.Parameters.Clear;
adoquery1.ParamCheck := false;
adoquery1.SQL.Text := sSql;
adoquery1.Execsql;
MessageBox(GetActiveWindow(), '批量导入EXCEL成功!', '警告', MB_OK + MB_ICONWARNING);
except
MessageBox(GetActiveWindow(), '批量导入EXCEL失败!', '警告', MB_OK + MB_ICONWARNING);
end;
except
MessageBox(GetActiveWindow(), '连接ACCESS失败!', '警告', MB_OK + MB_ICONWARNING);
end;
end; 2.SELECT * INTO ww1.dbo.ee
FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0',
'Excel 8.0;Database=c:\ee.xls',
3.SELECT * FROM [ee$]') SELECT *
FROM OpenDataSource( ’Microsoft.Jet.OLEDB.4.0’,
’Data Source="xls文件的地址";User ID=Admin;Password=;Extended properties=Excel 5.0’)...工作区的名称
var
sSql, mdbpath, xlspath: string;
begin
if (trim(edit1.Text) = '') or (trim(edit2.Text) = '') then
begin
MessageBox(GetActiveWindow(), '请正确选择相关路径!', '警告', MB_OK + MB_ICONWARNING);
exit;
end;
mdbpath := trim(edit1.Text); //MDB路径
xlspath := trim(edit2.Text); //Excel路径
ADOConnection1.Connected := False;
try
ADOConnection1.ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=' + mdbpath + ';Persist Security Info=False';
ADOConnection1.Connected := true;
try
//删除所有的记录
adoquery1.Close;
adoquery1.SQL.Clear;
sSql :='Delete * from Classes';
adoquery1.SQL.Text := sSql;
adoquery1.Execsql;
//添加记录
adoquery1.Close;
adoquery1.SQL.Clear;
sSql :='Insert into Classes (名次, 姓名, 性别, 总分)' + ' SELECT' + ' 名次, 姓名, 性别, 总分' + ' FROM [excel 8.0;database=' + xlspath + '].[Classes$]';
adoquery1.Parameters.Clear;
adoquery1.ParamCheck := false;
adoquery1.SQL.Text := sSql;
adoquery1.Execsql;
MessageBox(GetActiveWindow(), '批量导入EXCEL成功!', '警告', MB_OK + MB_ICONWARNING);
except
MessageBox(GetActiveWindow(), '批量导入EXCEL失败!', '警告', MB_OK + MB_ICONWARNING);
end;
except
MessageBox(GetActiveWindow(), '连接ACCESS失败!', '警告', MB_OK + MB_ICONWARNING);
end;
end; 2.SELECT * INTO ww1.dbo.ee
FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0',
'Excel 8.0;Database=c:\ee.xls',
3.SELECT * FROM [ee$]') SELECT *
FROM OpenDataSource( ’Microsoft.Jet.OLEDB.4.0’,
’Data Source="xls文件的地址";User ID=Admin;Password=;Extended properties=Excel 5.0’)...工作区的名称
解决方案 »
- 求助。构建FloatToStrF函数。
- 俺真晕了,advStringGrid是不是用编码也无法实现ctrl多选?非连续的多选。捣鼓了一晚上也没有整出来。
- RegisterServiceProcess 调用,高手请进,在线急等 !
- 小弟,对这个组件不太熟,能不能介绍下用法
- 有关OPENDIALOG访问服务器磁盘的问题
- 程序员作到我个地步,真是惨呀,没钱用了,卖源代码.
- 有关Delphi打包的问题2
- 如何获取主板的序号!waiting
- 一个关于提取字符的方法
- 用同一张母盘刻录出的光盘的特征是否可以区分????
- delphi 7 调用c#写的webservice的时候,返回了其他未调用方法的结果
- 请教为动态创建的ComboBox添加Item的问题
procedure TForm1.Button1Click(Sender: TObject);
var
sSql, mdbpath, xlspath: string;
begin
if (trim(edit1.Text) = '') or (trim(edit2.Text) = '') then
begin
MessageBox(GetActiveWindow(), '请正确选择相关路径!', '警告', MB_OK + MB_ICONWARNING);
exit;
end;
mdbpath := trim(edit1.Text); //MDB路径
xlspath := trim(edit2.Text); //Excel路径
ADOConnection1.Connected := False;
try
ADOConnection1.ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=' + mdbpath + ';Persist Security Info=False';
ADOConnection1.Connected := true;
try
//删除所有的记录
adoquery1.Close;
adoquery1.SQL.Clear;
sSql :='Delete * from Classes';
adoquery1.SQL.Text := sSql;
adoquery1.Execsql;
//添加记录
adoquery1.Close;
adoquery1.SQL.Clear;
sSql :='Insert into Classes (名次, 姓名, 性别, 总分)' + ' SELECT' + ' 名次, 姓名, 性别, 总分' + ' FROM [excel 8.0;database=' + xlspath + '].[Classes$]';
adoquery1.Parameters.Clear;
adoquery1.ParamCheck := false;
adoquery1.SQL.Text := sSql;
adoquery1.Execsql;
MessageBox(GetActiveWindow(), '批量导入EXCEL成功!', '警告', MB_OK + MB_ICONWARNING);
except
MessageBox(GetActiveWindow(), '批量导入EXCEL失败!', '警告', MB_OK + MB_ICONWARNING);
end;
except
MessageBox(GetActiveWindow(), '连接ACCESS失败!', '警告', MB_OK + MB_ICONWARNING);
end;
BitBtn1.Enabled:=true;
end;
服务器: 消息 7312, 级别 0, 状态 1, 行 1
[OLE/DB provider returned message: Microsoft Jet 数据库引擎找不到对象'Sheet1$'。请确定对象是否存在,并正确地写出它的名称和路径。]耗时:
188执行select type2,snw from OPENROWSET('Microsoft.Jet.OLEDB.4.0','Excel 5.0;Database=\\192.168.150.69\app\ee.xls','SELECT * FROM [Sheet1$]')
提示
服务器: 消息 7399, 级别 16, 状态 1, 行 2
OLE DB 提供程序 'Microsoft.Jet.OLEDB.4.0' 报错。提供程序未给出有关错误的任何信息。耗时:
47
我用的时客户端,sql装在服务器上,我的机器ip为192.168.150.69;
你确信这样能行吗,试过?