About

ドキュメント

APIドキュメント

サポート

S2Fisshplate.NETとは

Fisshplate.NETは、S2Container.NETやQuillには依存しておらず、汎用的に利用することができます。

S2Fisshplate.NETを使うことによって、QuillとS2Fisshaplate.NETを連携させ、インターフェースを定義するだけでFisshplate.NETの機能を使うことが可能になります。

0.1.0 ではQuillとの連携機能のみ提供しております。

Quillとの連携方法

Quillのセットアップは事前に行っておいてください。

また、S2Fisshplate.NETのセットアップを行っておきます。

Dtoの作成

まず、テンプレートに埋め込むDtoを作ります。

  • プロパティは必ずpublicにしてください。

public class TestFisshplateDto
{
  public string Title { get; set; }
  public List<TestItem> ItemList { get; set; }
}

インターフェースの定義

次にインターフェースを定義します。

  • インターフェースには次の属性をつけて下さい。
    • [Implementation]
    • [Aspect(typeof(Seasar.S2Fisshplate.Interceptors.FPQuillInterceptor))]
  • メソッドの戻り値は必ず「HSSFWorkbook」にしてください。
  • 引数は1つにして下さい。引数が複数の場合、第1引数のみが埋め込み用データとして扱われ、他は無視されます。
  • メソッドには次の属性をつけて下さい。パラメータには、テンプレートファイルへのパスを記述します。
    ※0.1.1からFPTemplateFileに変更になりました! 0.1.0までのFPTemplateはdeprecatedになります。
    • [[FPTemplateFile(string Path)]]
[Implementation]
[Aspect(typeof(Seasar.S2Fisshplate.Interceptors.FPQuillInterceptor))]
public interface TestFisshplate
{
  [[FPTemplateFile(@"Template\FPSample.xls")]]
  HSSFWorkbook GetTestWb(TestFisshplateDto dto);
}

テンプレートファイルの作成

テンプレートファイルを作成します。

  • ファイル名は、FPTemplate属性に指定したファイル名で作成します。
  • 実行ファイルから参照できる場所に配置してください。
    • VisualStudioの場合、テンプレートファイルのプロパティの「出力ディレクトリにコピー」を「常にコピーする」「新しい場合はコピーする」にすることで読み込まれます。
  • 引数のDtoのプロパティは「data」という名前で参照できます。
    • この場合、「TestFisshplateDto.Title」は「${data.Title}」で参照されます。
TODO:ここにイメージ画像

ファイルの出力

呼び出し側ではこのようになります。テンプレートファイルの読み込み、解析、ファイル出力などの処理が自動で実行され、出力ファイルが戻されます。

protected TestFisshplate fisshplate; // Quillでインジェクションされます。

public void Hoge()
{
  // QuillInjector.GetInstance().Inject(this);
  
  TestFisshplateDto dto =new TestFisshplateDto();
  dto.Title = "テストです";
  
  List<TestItem> itemList = new List<TestItem>();
  TestItem item = new TestItem();
  item.Date = DateTime.Now;
  item.Name = "1行目";
  item.Num = 10;
  itemList.Add(item);
  // ・・以下、必要な数だけ明細行を追加
  dto.ItemList = itemList;
  HSSFWorkbook wb = fisshplate.GetTestWb(dto);
}

このようにして、データ埋め込み済みのHSSFWorkbookを取得する事が出来ます。