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







テンプレートの使用


テンプレート用 (ひな型) のファイルを指定した場合のテストプログラムです.
テンプレートとして,テストプログラムフォルダ内のテストブック.Xlt を使用しています.出力先はボタンクリックで現れる保存ダイアログで新規のブック名をタイプするか,既存のブック名を選択します.既存のブック名を選択した場合は,一度そのブックが削除され,テンプレートのコピーが作成されて,そこにデータを出力します.


図1
テンプレート用のブック
  • あらかじめテンプレート用のブックを用意
  • このブックのコピーを作成してデータを書込む
  • テストに使用したのは Excel 2010
図2
設計時の画面
図3
作成されたブック
  • テストブック .xlt はテンプレート用ブック
図4
作成されたブックの内容
  • 属性はテンプレートのもの

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

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;
    SaveDialog1: TSaveDialog;
    Button1: TButton;
    plXLSOut1: TplXLSOut;
    procedure Button2Clic(Sender: TObject);
  private
    { Private 宣言 }
  public
    { Public 宣言 }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

//=============================================================================
//  保存ダイアログで保存ファイル(ブック)名を指定して実行
//  セル等の属性はTemplateFileの属性に従う(AttribOut:=Falseなので)
//=============================================================================
procedure TForm1.Button2Clic(Sender: TObject);
begin
  Table1.Open;
  plXLSOut1.AttribOut    := False;
  plXLSOut1.FileDir      := ExtractFileDir(Application.ExeName);
  plXLSOut1.TemplateFile := plXLSOut1.FileDir + PathDelim + 'テストブック.xlt';

  with SaveDialog1 do begin
    InitialDir := plXLSOut1.FileDir;
    FileName   := '別名保存ファイル';
    Filter     := 'Microsoft Excelファイル (*.Xls)|*.XLS';
    if Execute then begin
      plXLSOut1.FilePath := FileName;
      plXLSOut1.Excute;
    end;
  end;

  Table1.Close;
end;

end.