我想从Excel中把数据导入到SQL Server,但是:
procedure TForm1.btnimportxlsClick();
var
fname,s:string;
i,j:integer;
WorkSheet,WorkBook,MsExcel:variant;
begin
j:=0;
MsExcel := CreateOleObject('Excel.Application');
WorkBook := MsExcel.Application;
if openDialog1.Execute then
begin
Fname:=openDialog1.FileName;
WorkBook.WorkBooks.Open(Fname);
WorkBook.Visible := False;
MsExcel.Visible := true;
WorkSheet := WorkBook.ActiveSheet;
for i:=1 to WorkSheet.UsedRange.Rows.count do
begin
DataModule1.adoquery1.Close;
DataModule1.adoquery1.SQL.Clear;
DataModule1.adoquery1.SQL.Add('select 导出时间 from aaa where 导出时间='+inttostr(WorkSheet.Cells.Item[i,1])); //--就是这里出错!!!
DataModule1.adoquery1.Open;
...
编译时没有问题,但是运行到 那一句时却报“cannot convert variant of Type(Dispatch) into type(integer)”
这是怎么回事?//////////////////////////////////////////
另外,请问要用到TExcelApplication必须USE哪个文件?我很着急,请大侠不吝赐教!谢谢!
procedure TForm1.btnimportxlsClick();
var
fname,s:string;
i,j:integer;
WorkSheet,WorkBook,MsExcel:variant;
begin
j:=0;
MsExcel := CreateOleObject('Excel.Application');
WorkBook := MsExcel.Application;
if openDialog1.Execute then
begin
Fname:=openDialog1.FileName;
WorkBook.WorkBooks.Open(Fname);
WorkBook.Visible := False;
MsExcel.Visible := true;
WorkSheet := WorkBook.ActiveSheet;
for i:=1 to WorkSheet.UsedRange.Rows.count do
begin
DataModule1.adoquery1.Close;
DataModule1.adoquery1.SQL.Clear;
DataModule1.adoquery1.SQL.Add('select 导出时间 from aaa where 导出时间='+inttostr(WorkSheet.Cells.Item[i,1])); //--就是这里出错!!!
DataModule1.adoquery1.Open;
...
编译时没有问题,但是运行到 那一句时却报“cannot convert variant of Type(Dispatch) into type(integer)”
这是怎么回事?//////////////////////////////////////////
另外,请问要用到TExcelApplication必须USE哪个文件?我很着急,请大侠不吝赐教!谢谢!
解决方案 »
- delphi2009 opendialog问题。。我的天!!大问题。
- 我是一个初学者,对之前回复的 New(Pint); Pint^ := 11; OneNode.Data := Pint;有点不懂啊?能解释一下吗?多谢啊!
- DBEdit的数据修改问题
- 又一个很菜的问题,麻烦大家了!
- 打印到文本时如何设置显示格式(数字显示成为货币格式)?
- 多线程使用控件,ProgressBar和label.
- 高分求DELPHI中文帮助,请大家帮助一下菜鸟
- 请教:请提供有关数据库理论、文章或论文的英文网站
- 请问sReport控件应该装在哪个目录,在哪个组件面板可以找到
- 老掉牙的发邮件问题(indy控件)。
- 无聊,散分
- !!!!!!!!关于sp的问题,给思路就行!!!!!!!!
还有一个问题,怎么获得Excel的sheet,workbooks,application的名称呢?
inttostr(WorkSheet.Cells.Item[i,1].value)
varastype(WorkSheet.Cells.item[1,i],varstring)搞定了!剩余问题是:
怎么获得Excel的sheet,workbooks,application的名称呢?