技巧一:Delphi XE3 Excel导入数据到StringGrid

procedure TDataEditDrFrm.btn8Click(Sender: TObject);
var
excelx,excely:string;
ExcelApp:Variant;
workBook:OleVariant;
excelRowCount,excelColumnCount:longint;
i,j,row,row1:integer;

begin
row1:=1;
pb1.Min:=0;
dlgOpen1.Filter:='Excel文件|*.xls|*.xlsx';
if dlgOpen1.Execute then
begin
try
ExcelApp:=CreateOleObject('Excel.Application');
workBook:=ExcelApp.WorkBooks.open(dlgOpen1.FileName);
ExcelApp.visible:=False;
excelRowCount:=ExcelApp.ActiveSheet.UsedRange.Rows.count;
row:=1;
pb1.Max:=excelRowCount;

for i := 1 to excelRowCount do
begin
excelx:= excelapp.Cells[i,1].Value;
excely:=ExcelApp.cells[i,2].value;
if (excelx<>'') and (excely<>'') then
begin
if strngrd1.RowCount<i then
strngrd1.RowCount:=strngrd1.RowCount+1;
strngrd1.Cells[0,row]:=IntToStr(row);
strngrd1.Cells[1,row]:=excelx;
strngrd1.Cells[2,row]:=excely;
row:=row+1;
end;
pb1.StepBy(1);
end;
finally
workBook.Close;
ExcelApp.quit;
ExcelApp := Unassigned;
WorkBook := Unassigned;

end;

end;
end;

posted @ 2014-04-29 16:46  啸月☆天狼  阅读(923)  评论(0编辑  收藏  举报