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 で表示
- セルの背景色もコードで設定したもの
|
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.
|