for line:=1 to 13 do 
begin 
sheet.cells[row,line]:='';//此步出错 
end; 
刚才写错

解决方案 »

  1.   

    不支持Cells方法,可以参看我以下的例子:
    procedure TForm1.Button1Click(Sender: TObject);
    var
        MsExcel,WorkBook,WorkSheet:Variant;
        i:integer;
    begin
        MsExcel   :=CreateOLEObject('Excel.Application');
        if OpenDialog1.Execute then
        begin
            MsExcel.WorkBooks.Open(OpenDialog1.FileName);
            WorkBook  :=MsExcel.ActiveWorkBook;
            WorkSheet :=MsExcel.ActiveSheet;
            for I:=2 to MSExcel.ActiveSheet.UsedRange.Rows.Count do
            begin
                with AdoQuery1 do
                begin
                    Close;
                    Sql.Text :=' Insert Into EmployeeInfo(EmployeeNo,Name,Depart)'
                              +' Values '
                              +'(:No,:Name,:Depart)';
                    paraMeters.ParamByName('No').Value     :=MSexcel.cells[i,1].value;
                    paraMeters.ParamByName('Name').Value   :=MSexcel.cells[i,2].value;
                    paraMeters.ParamByName('Depart').Value :=MSexcel.cells[i,3].value;
                    ExecSql;
                end;
            end;
            ShowMessage('成功插入数据!');
        end;
        MSExcel.ActiveWorkBook.Close;
        MSExcel.Quit;
        //MsExcel :=Unassigned;
    end;