如题

解决方案 »

  1.   

        ExcelWorksheet1: TExcelWorksheet;
    procedure TFrmInsertCustominfoForImport.BitBtnNewClick(Sender: TObject);
    var
      FObjID: TGuid;
      i,j: integer;
    begin
      //inherited;
      OpenDialog1.DefaultExt:= 'xls';
      OpenDialog1.FileName:= '*.xls';
      OpenDialog1.Filter:= 'xls files (*.xls)|*.xls';
      if OpenDialog1.Execute then begin
        try
          ExcelApplication1.Connect;
        except
          Application.Messagebox('无法打开xls文件,请确认已经安装Microsoft Excel.','',
               mb_OK+mb_IconStop);
          ExcelApplication1.Quit;
          Exit;
        end;
      end;
      //ExcelApplication1.Visible[0]:=True;
      try
        ExcelApplication1.Workbooks.Open(OpenDialog1.FileName,
               null,null,null,null,null,null,null,null,null,null,null,null,0);//打开指定的EXCEL 文件
      except
        ExcelApplication1.Disconnect;//出现异常情况时关闭
        ExcelApplication1.Quit;
        //SetMessage('请选择EXCEL电子表格!');
        Exit;
      end;
      try
        try
          ExcelWorkbook1.ConnectTo(ExcelApplication1.Workbooks[1]);//ExcelWorkbook1与Eexcelapplication1建立连接
          ExcelWorksheet1.ConnectTo(ExcelWorkbook1.Worksheets[1] as _Worksheet);      i:= 3;
          while Trim(ExcelWorksheet1.Cells.Item[i+1,1])<>'' do begin
            with cdsMasterInsData do begin
              CreateGUID(FObjID);
              Append;
              for j:= 1 to 37 do begin
                if Trim(ExcelWorksheet1.Cells.Item[i+1,1])<>'' then
                  case j of
                   1: begin
                        FieldByName('ObjID').AsString:= GUIDToString(FObjID);
                        FieldByName('Code').AsString:= Trim(ExcelWorksheet1.Cells.Item[i+1,j]);
                        FieldByName('EnterCode').AsString:= EnterpriseID;
                        FieldByName('CreatorCode').AsString:= OperatorCode;
                        FieldByName('IsValid').AsInteger:= 1;
                        FieldByName('TranStatus').AsInteger:= 1;
                      end;
                   2: FieldByName('custom_id').AsString:= Trim(ExcelWorksheet1.Cells.Item[i+1,j]);
                   3: FieldByName('Name').AsString:= Trim(ExcelWorksheet1.Cells.Item[i+1,j]);
                   4: FieldByName('Mphone').AsString:= Trim(ExcelWorksheet1.Cells.Item[i+1,j]);
                   5: FieldByName('HomePhone').AsString:= Trim(ExcelWorksheet1.Cells.Item[i+1,j]);
                   6: FieldByName('CompanyPhone').AsString:= Trim(ExcelWorksheet1.Cells.Item[i+1,j]);
                   7: FieldByName('OtherPhone').AsString:= Trim(ExcelWorksheet1.Cells.Item[i+1,j]);
                   8: FieldByName('areacode').AsString:= Trim(ExcelWorksheet1.Cells.Item[i+1,j]);
                   9: FieldByName('province').AsString:= Trim(ExcelWorksheet1.Cells.Item[i+1,j]);
                  10: FieldByName('city').AsString:= Trim(ExcelWorksheet1.Cells.Item[i+1,j]);
                  11: FieldByName('place').AsString:= Trim(ExcelWorksheet1.Cells.Item[i+1,j]);
                  12: FieldByName('addr').AsString:= Trim(ExcelWorksheet1.Cells.Item[i+1,j]);
                  13: FieldByName('email').AsString:= Trim(ExcelWorksheet1.Cells.Item[i+1,j]);
                  14: FieldByName('mailcode').AsString:= Trim(ExcelWorksheet1.Cells.Item[i+1,j]);
                  15: FieldByName('bindkindid').AsString:= Trim(ExcelWorksheet1.Cells.Item[i+1,j]);
                  16: FieldByName('cuspropty').AsString:= Trim(ExcelWorksheet1.Cells.Item[i+1,j]);
                  17: FieldByName('Sex').AsString:= Trim(ExcelWorksheet1.Cells.Item[i+1,j]);
                  18: FieldByName('culture').AsString:= Trim(ExcelWorksheet1.Cells.Item[i+1,j]);
                  19: FieldByName('Birthday').AsString:= Trim(ExcelWorksheet1.Cells.Item[i+1,j]);
                  20: FieldByName('ownerage').AsString:= Trim(ExcelWorksheet1.Cells.Item[i+1,j]);
                  21: FieldByName('Occupation').AsString:= Trim(ExcelWorksheet1.Cells.Item[i+1,j]);
                  22: FieldByName('vocation').AsString:= Trim(ExcelWorksheet1.Cells.Item[i+1,j]);
                  23: FieldByName('hobby').AsString:= Trim(ExcelWorksheet1.Cells.Item[i+1,j]);
                  24: FieldByName('weddate').AsString:= Trim(ExcelWorksheet1.Cells.Item[i+1,j]);
                  25: FieldByName('CusValues').AsString:= Trim(ExcelWorksheet1.Cells.Item[i+1,j]);
                  26: FieldByName('VisitNum').AsString:= Trim(ExcelWorksheet1.Cells.Item[i+1,j]);
                  27: FieldByName('wedded').AsString:= Trim(ExcelWorksheet1.Cells.Item[i+1,j]);
                  28: FieldByName('CustomType').AsString:= Trim(ExcelWorksheet1.Cells.Item[i+1,j]);
                  29: FieldByName('isVip').AsString:= Trim(ExcelWorksheet1.Cells.Item[i+1,j]);
                  30: FieldByName('VipNo').AsString:= Trim(ExcelWorksheet1.Cells.Item[i+1,j]);
                  31: FieldByName('MsgServicesStatus').AsString:= Trim(ExcelWorksheet1.Cells.Item[i+1,j]);
                  32: FieldByName('bindlevelid').AsString:= Trim(ExcelWorksheet1.Cells.Item[i+1,j]);
                  33: FieldByName('linkman').AsString:= Trim(ExcelWorksheet1.Cells.Item[i+1,j]);
                  34: FieldByName('linkphone').AsString:= Trim(ExcelWorksheet1.Cells.Item[i+1,j]);
                  35: FieldByName('LinkAddr').AsString:= Trim(ExcelWorksheet1.Cells.Item[i+1,j]);
                  36: FieldByName('CompanyAddr').AsString:= Trim(ExcelWorksheet1.Cells.Item[i+1,j]);
                  37: FieldByName('IsVisitOut').AsString:= Trim(ExcelWorksheet1.Cells.Item[i+1,j]);
                  end
              end;
              Post;
            end;
            i:= i+1;
          end;
        except
          ExcelApplication1.Disconnect;
          ExcelApplication1.Quit;
          raise;
        end;
      finally
        ExcelApplication1.Disconnect;
        ExcelApplication1.Quit;
      end;
    end;
    一段列子,实现的方式都差不多
      

  2.   

    ExcelWorksheet1.Cells.Item[i+1,1]就是指定单元的值,应该明白了吧。