« ☆プロジェクトのバージョン番号が設定できない。 | トップページ | ☆DBGridのColumn描画 »

☆ExcelをADOで操作する。

フォームにADOConnection1、ADOTable1、DataSource1、DBGrid1を配置し、いつものように?設定します。

ADOConnection1の設定です。
ADOConnection1.ConnectionString := 
 'Provider=Microsoft.Jet.OLEDB.4.0;' +
 'Data Source=C:\master.xls;' +
 'Extended Properties=EXCEL 8.0';
ADOConnection1.LoginPrompt := False;

次にADOTable1の設定です。ポイントは、TableNameでシート名を[ ]で囲うことです。これをしないと「FROM 句の構文エラーです。」と表示され、ファイルをオープンすることができません。TableNameをオブジェクトインスペクタで選択した場合には、[ ]がないので要注意です。
ADOTable1.Connection := AdoConnection1;
ADOTable1.TableName := '[sheet1$]';
ADOTable1.Active := True;  


これでExcelの内容がDBGridに表示されるようになりました。

Design



ADOConnection1、ADOTable1をクローズします。
そして、実行時にファイルをオープン/クローズする処理を書きます。
procedure TForm1.FormCreate(Sender: TObject);
begin
  ADOTable1.Open;
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
  ADOTable1.Close;
  ADOConnection1.Close; //念のため
end;  



ADOでの操作では追加や編集は可能ですが、行を削除をしようとすると次のようなエラーメッセージが表示されます。

Del_err

ということで、行の削除はできないという仕様らしいです。 又、排他的に開かれているので、このプログラムを実行しているときにはExcel等で開くことはできないです。


[参考にした書籍]

Marco Cantu
Delphi6プログラミングバイブル

|

« ☆プロジェクトのバージョン番号が設定できない。 | トップページ | ☆DBGridのColumn描画 »