Delphi Programming / Object Pascal
サイトのトップページへ リンクのページへ ロゴマーク
[掲載 2002年01月16日] [更新 2011年08月01日] Excel出力コンポーネント
   
Excel 出力コンポーネント
イベント
動作確認等 Windows 7 U64(SP1) + Delphi XE(UP1) Pro







各セルへの出力前に発生


OnBeforePutValue(Sender,
                 iFieldNo,
                 FieldName,
                 FieldTyp,
                 iCol,
                 iRow,
                 var IsAllow)

このイベントの後に,各セルへデータ型に応じた値をセルへ出力します.ただし,処理可能なフィールドのデータ型以外は文字列として出力しますが,このイベントを定義していると (処理コードの有無に関係なく),その文字列を出力しません.
本コンポが自動処理する以外のデータ型は,このイベントか,OnAfterPutValue イベント内で処理してください.

引数 説明
Sender TObject コンポーネント自身
iFieldNo Integer データセットのフィールド番号 (最初の番号は 0)
FieldName String データセットのフィールド名
FieldTyp TFieldType データセットのフィールドのデータ型
iCol Inteter 出力先のセルの列番号
iRow Integer 出力先のセルの行番号
var IsAllow Boolean この値が True なら,コンポ内でデータ型に応じた処理を実行
False の場合は,このイベントか,OnAfterPutValue イベント内の処理だけが実行される
デフォルトは True




各セルへの出力後に発生


OnAfterPutValue(Sender,
                iFieldNo,
                FieldName,
                FieldTyp,
                iCol,
                iRow)

このイベント内で追加の出力コードを書くことができます.
本コンポが自動処理する以外のデータ型は,OnBeforePutValue イベントか,このイベント内で処理してください.

引数 説明
Sender TObject コンポーネント自身
iFieldNo Integer データセットのフィールド番号 (最初の番号は 0)
FieldName String データセットのフィールド名
FieldTyp TFieldType データセットのフィールドのデータ型
iCol Inteter 出力先のセルの列番号
iRow Integer 出力先のセルの行番号




データ出力後に発生


OnBeforeEnd(Sender)

このイベントが発生した時点で Excel への出力が終了しています.追加の出力を行いたい場合に使用します.Excel Creater の各プロパティ,メソッド等,またはメソッドのページで説明しているメソッドを使用して下さい.Excel Creater の関数を使用する場合は uses に XlsCrt3 が必要です.

引数 説明
Sender TObject コンポーネント自身


リスト1
セル D1 に 'テスト' という文字列を,垂直位置,水平位置共に中央揃えで出力
文字列には,AnsiString 型を使用することに注意
//=============================================================================
//  OnBeforeEndイベントで追加の出力
//  Excel CreateのAPI関数を使用するので,usesにXlsCrt3が必要
//=============================================================================
procedure TForm1.plXLSOut1BeforeEnd(Sender: TObject);
var
  LText : AnsiString;
begin
  LText := 'テスト';
  XlsCrt3.XlsPutStr     (PAnsiChar(LText), Cell('D1', 0, 0));
  XlsCrt3.XlsPutPosVert (pvCenter, Cell('D1', 0, 0));
  XlsCrt3.XlsPutPosHorz (phCenter, Cell('D1', 0, 0));
end;