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







属性出力のテスト


出力先のセルの属性を設定して出力する場合のテストプログラムです.
Delphi 付属のデータベース DBDEMOS を使用しています.データ数も少ないので,Excel への出力は一瞬,あっという間に終了します.


図1
設計時画面
図2
作成されたブック
図3
ブックの内容
  • 作成したブックを Excel 2010 で表示
  • セルの背景色もコードで設定したもの

リスト1
テストプログラムのコード
unit AttribTestUnit;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, plXLSOut, DB, DBTables, StdCtrls;

type
  TForm1 = class(TForm)
    Table1: TTable;
    Table1CustNo: TFloatField;
    Table1Company: TStringField;
    Table1Addr1: TStringField;
    Table1Country: TStringField;
    Table1Phone: TStringField;
    Table1LastInvoiceDate: TDateTimeField;
    plXLSOut1: TplXLSOut;
    SaveDialog1: TSaveDialog;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
    procedure plXLSOut1BeforeEnd(Sender: TObject);
  private
    { Private 宣言 }
  public
    { Public 宣言 }
  end;

var
  Form1: TForm1;

implementation

uses
  XlsCrt3;

{$R *.DFM}

//=============================================================================
//  ブックを新規作成して出力 
//  同名のファイル(ブック)が存在する場合は削除して新規作成
//=============================================================================
procedure TForm1.Button1Click(Sender: TObject);
var
  LText : String;
begin
  Table1.Open;
  LText := 'plXLSOutテストブック';
  plXLSOut1.FileCreate := True;
  plXLSOut1.AttribOut  := True;
  plXLSOut1.FileDir    := ExtractFileDir(Application.ExeName);

  with SaveDialog1 do begin
    InitialDir := plXLSOut1.FileDir;
    FileName   := LText;
    Filter     := 'Microsoft Excelファイル (*.Xls)|*.Xls';
    if Execute then begin
      plXLSOut1.FileName := ExtractFileName(FileName);
      plXLSOut1.Excute;
    end;
  end;

  Table1.Close;
end;

//=============================================================================
//  OnBeforeEndイベントで追加の出力
//  タイトル文字列
//  指定セル範囲の背景色
//
//  Excel CreateのAPI関数を使用するので,usesにXlsCrt3が必要
//=============================================================================
procedure TForm1.plXLSOut1BeforeEnd(Sender: TObject);
var
  LCell : PAnsiChar;
begin
  plXLSOut1.PutCellStr('エクセルクリエータ用コンポテスト', 'C3');

  //出力セル範囲(Excel CreatorのAPI関数使用)
  //[ExcelCreator関数一覧]の[セル位置指定に関する関数]参照
  LCell := XlsCrt3.Pos(3,
                       plXLSOut1.StartRow,
                       3,
                       plXLSOut1.StartRow + plXLSOut1.DataSet.RecordCount);
  //そのセル範囲の背景色指定
  XlsPutBackColor(42, LCell);
end;

end.