EXCEL2000のセルから読めるようにするには


NaNaCLUB  URL  2001-01-18 20:25:15  No: 46

DELPHI5.0からEXCEL2000のセルの内容を読み込んで、
  DELPHI5.0で利用したいのですが、コーティングがわかりません。
  自分でした事は、Office2000用のオートメーションコンポーネントを
  アップデートしました。ここからどうすればいいかわかりません。


nic  2001-09-07 00:11:51  No: 47

とりあえずおいておこー

procedure TForm1.Button1Click(Sender: TObject);
var
  lcID: integer;
  Sh: Olevariant;//よく分かってません
begin
  lcID:= GetUserDefaultLCID;
  if not FileExists('test.xls') then begin
    MessageDlg('NoFile',mtError,[mbOK],0);
    exit;
  end;
  try
    ExcelApplication1.Connect;//せっかくあるから使うだけ
    ExcelApplication1.Visible[lcID]:=True;//普通はfalse
      ExcelApplication1.Workbooks.Open(ExtractFilePath(Application.ExeName)+'test', EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,lcID);
    sh:= ExcelApplication1.ActiveWorkbook.ActiveSheet ;
    
    StringGrid1.Cells[1,1]:= Sh.Cells[3,1];//例えば[A,3]のセル内容を取り出したいとき

    sh.Range['A4'].copy;//[A,4]セルをクリップボードにコピー
    sh.range['A1'].select;//クリップボードから[A,1]にペースト
    sh.paste;

    sh.range['a8:an8'].copy (destination := sh.range['a10']);//この操作後クリップボードが空?になる  この後 sh.paste とするとエラー

    sh.range['m4:p5'].clear;//[M,4]-[P,5]のセル内容だけ消す

    sh.range['m4:p5'].delete;//セルごと消して以降のセルがずれる
  finally
//    ExcelApplication1.ActiveWorkbook.Saved[lcID]  :=  True;
    ExcelApplication1.Workbooks.Close(lcID);
    ExcelApplication1.Quit;
    ExcelApplication1.Disconnect;
  end;
end;


※返信する前に利用規約をご確認ください。








  このエントリーをはてなブックマークに追加