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
実行結果例
|
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 プロパティを設定しなくても,エクセルの高速操作用として利用できます.この場合,処理コードは OnBeforeEnd イベント内に書きます. |
Ver.9.00 で Delphi 2009 と Delphi 2010 に対応しましたが,Unicode 化したわけではありません.コンポーネント内部では AnsiString を使用しています.Excel Creator の API 関数の文字列引数に,Unicode 文字列を渡すと正常動作しません.そこで AnsiString を使用するようにしました. |
添付のテストプログラムでは,BDE 経由で Paradox のデータを扱っています.BDE と Paradox については以下の記事を参考にしてください. |
|