Delphi Programming / Object Pascal
サイトのトップページへ リンクのページへ ロゴマーク
[掲載 2002年01月16日] [更新 2016年05月04日] Excel出力コンポーネント
Excel 出力コンポーネント
使用方法と再配布必要なランタイムライブラリ
動作確認等 説明は Windows 7 U64(SP1) + Delphi XE(UP1) Pro で作成







使用方法


以下は,Delphi に付属している DBDEMOS というデータベースを使用した例です.指定したフォルダにエクセルのブックを新規作成して,Sheet1 にデータを書込みます.
  • 新規プロジェクトのフォームに下図のようにコントロールを配置
  • Table1 のプロパティを設定
    DatabaseName を DBDEMOS
    TableName を customer.db
  • 本コンポの DataSet を Table1 にする
  • 本コンポをダブルクリックして,項目エディタで出力する項目を作成する
後は実行コードを作成して実行します.


図1
コンポーネントを配置
  • Delphi を起動
  • From に TTable, TButton と本コンポを配置
図2
項目エディタで追加した項目例
  • Table1 を Active にする
  • 本コンポをダブルクリック
  • 項目を追加する


図3
項目エディタのプロパティ
  • 各プロパティを設定
図4
実行結果例
  • 作成したブックを Excel 2010 で表示

リスト1
procedure TForm1.Button1Click(Sender: TObject);
begin
  Table1.Open;

  plXLSOut1.FileName   := 'test.xls';
  plXLSOut1.FileCreate := True;
  plXLSOut1.AttribOut  := True;

  plXLSOut1.Excute;

  Table1.Close;
end;




ランタイムライブラリの配布


このコンポーネントは,開発時に Excel Creater Ver3.0 をインストールしないと使用できません.また作成したアプリケーションを配布する際には,付属のランタイムライブラリ XlsCrt2.DLL (再配布可能) が必要です.
ヘルプでは,この DLL は Windows のシステムフォルダに置くことになっていますが,EXE と同じフォルダ内に置けば動作するようです.

Excel Creator はコンポーネントにして利用することも可能です.コンポーネントの方が使い勝手はいいのですが,DLL をレジストリに登録しなければなりません.この登録には管理者権限が必要です.そのため API 関数を使用する方式としています.API 関数を使用する場合は,DLL が,システム的にパスの通った場所にあれば済みます.






DataSet を使用しない場合


DataSet プロパティを設定しなくても,エクセルの高速操作用として利用できます.この場合,処理コードは OnBeforeEnd イベント内に書きます.




Unicode には未対応


Ver.9.00 で Delphi 2009 と Delphi 2010 に対応しましたが,Unicode 化したわけではありません.コンポーネント内部では AnsiString を使用しています.Excel Creator の API 関数の文字列引数に,Unicode 文字列を渡すと正常動作しません.そこで AnsiString を使用するようにしました.




添付のテストプログラムについて


添付のテストプログラムでは,BDE 経由で Paradox のデータを扱っています.BDE と Paradox については以下の記事を参考にしてください.