从excel中读取数据,执行到‘while eclApp.Cells(i,1) <> '' do begin’的时候会出错,大家帮忙看看是什么问题?
程序如下:
procedure TfrmInputPJ.btnImportClick(Sender: TObject);
var
i:Integer;
eclApp,WorkBook,Sheet:Variant;
xlsFileName:string;
begin
if dlgImport.Execute then
xlsFileName := dlgImport.FileName
else
Exit; try
eclApp := CreateOleObject('Excel.Application');
WorkBook := CreateOleObject('Excel.Sheet');
Except
Application.MessageBox('您的电脑中可能未安装Microsoft Excel!','错误',0);
Exit;
end; try
i := 2;
while eclApp.Cells(i,1) <> '' do begin
adoTemp1.Append;
adoTemp1.FieldByName('PJMC').AsString := eclApp.Cells(i,1);
adoTemp1.FieldByName('PJDM').AsString := eclApp.Cells(i,2);
adoTemp1.FieldByName('CX').AsString := eclApp.Cells(i,3);
adoTemp1.FieldByName('CD').AsString := eclApp.Cells(i,4);
adoTemp1.FieldByName('SL').AsString := eclApp.Cells(i,5);
adoTemp1.FieldByName('DJ').AsString := eclApp.Cells(i,6);
adoTemp1.Post;
i := i + 1;
end;
Except
Application.MessageBox('导入失败!','错误',0);
WorkBook.close;
eclApp.Quit;
eclApp:=Unassigned;
end;
程序如下:
procedure TfrmInputPJ.btnImportClick(Sender: TObject);
var
i:Integer;
eclApp,WorkBook,Sheet:Variant;
xlsFileName:string;
begin
if dlgImport.Execute then
xlsFileName := dlgImport.FileName
else
Exit; try
eclApp := CreateOleObject('Excel.Application');
WorkBook := CreateOleObject('Excel.Sheet');
Except
Application.MessageBox('您的电脑中可能未安装Microsoft Excel!','错误',0);
Exit;
end; try
i := 2;
while eclApp.Cells(i,1) <> '' do begin
adoTemp1.Append;
adoTemp1.FieldByName('PJMC').AsString := eclApp.Cells(i,1);
adoTemp1.FieldByName('PJDM').AsString := eclApp.Cells(i,2);
adoTemp1.FieldByName('CX').AsString := eclApp.Cells(i,3);
adoTemp1.FieldByName('CD').AsString := eclApp.Cells(i,4);
adoTemp1.FieldByName('SL').AsString := eclApp.Cells(i,5);
adoTemp1.FieldByName('DJ').AsString := eclApp.Cells(i,6);
adoTemp1.Post;
i := i + 1;
end;
Except
Application.MessageBox('导入失败!','错误',0);
WorkBook.close;
eclApp.Quit;
eclApp:=Unassigned;
end;
解决方案 »
- DELPHI7导入EXCEL问题,大侠们请进来看看
- 如何打开存于数据库的word,JPG图片,WAV文件?
- 如何把一个30分钟的mp3文件,每五分钟分一个文件就行,随便对等分几段也可
- DLL中如何加载其他DLL
- 急求帮助,使用Indy编写通信程序,服务器端使用ReadBuffer读出的数据不正确
- 瑞星杀毒软件2003版 V15.02.01 的序列号是多少?先到先得,到者有分。
- 请问有谁知道,我在对动态创建的combobox与Label进行拖动,拖动任何一个时另一个也一起动,就像是Label与Combobox是捆在一起的一样?还有
- sql语句的问题
- 我在网上发好多求职简历,但是都没有回应我该怎么办?看来公司不是很重视着!!!!!!
- 我应该怎么赋值?
- [求助]VC++6.0下的图像分割问题
- 关于delphi里的writeln不能写入的问题
adoTemp1.Append;
adoTemp1.FieldByName('PJMC').AsString := eclApp.Cell.Item[i,1];
adoTemp1.FieldByName('PJDM').AsString := eclApp.Cell.Item[i,2];
adoTemp1.FieldByName('CX').AsString := eclApp.Cell.Item[i,3];
adoTemp1.FieldByName('CD').AsString := eclApp.Cell.Item[i,4];
adoTemp1.FieldByName('SL').AsString := eclApp.Cell.Item[i,5];
adoTemp1.FieldByName('DJ').AsString := eclApp.Cell.Item[i,6];
adoTemp1.Post;
i := i + 1;
end;
你试试看看行不行?
adoTemp1.Append;
adoTemp1.FieldByName('PJMC').AsString := eclApp.Cells.Item[i,1];
adoTemp1.FieldByName('PJDM').AsString := eclApp.Cells.Item[i,2];
adoTemp1.FieldByName('CX').AsString := eclApp.Cells.Item[i,3];
adoTemp1.FieldByName('CD').AsString := eclApp.Cells.Item[i,4];
adoTemp1.FieldByName('SL').AsString := eclApp.Cells.Item[i,5];
adoTemp1.FieldByName('DJ').AsString := eclApp.Cells.Item[i,6];
adoTemp1.Post;
i := i + 1;
end;
你再试试看看行不行?
var
i: Integer;
eclApp: Variant;
xlsFileName:string;
begin
if not dlgImport.Execute then exit; xlsFileName := dlgImport.FileName; try
eclApp := CreateOleObject('Excel.Application');
eclApp.WorkBooks.Open(xlsFileName);
eclApp.Visible:=False;
Except
Application.MessageBox('您的电脑中可能未安装Microsoft Excel!','错误',0);
Exit;
end; try
for i:=2 to eclApp.ActiveSheet.UsedRange.Rows.Count do
begin
adoTemp1.Append;
adoTemp1.FieldByName('PJMC').AsString := eclApp.Cells[i,1].Value;
adoTemp1.FieldByName('PJDM').AsString := eclApp.Cells[i,2].Value;
adoTemp1.FieldByName('CX').AsString := eclApp.Cells[i,3].Value;
adoTemp1.FieldByName('CD').AsString := eclApp.Cells[i,4].Value;
adoTemp1.FieldByName('SL').AsString := eclApp.Cells[i,5].Value;
adoTemp1.FieldByName('DJ').AsString := eclApp.Cells[i,6].Value;
adoTemp1.Post;
end;
Except
Application.MessageBox('导入失败!','错误',0);
end;
eclApp.ActiveWorkBook.close;
eclApp.Quit;
eclApp:= Unassigned;
end;