基本的な流れ
作成したテンプレートを利用してファイルを出力する方法は次の流れとなります。
- テンプレートオブジェクトの生成
- 埋め込みデータ生成
- テンプレートファイル読み込み・ファイル出力
ファイル出力
テンプレートオブジェクトの生成
まず、ファイルを出力するオブジェクト「FPTemplate」を生成します。
FPTemplate template = new FPTemplate();
埋め込みデータ生成
テンプレートに埋め込むデータは「IDictionary<string, object>」で作ります。
IDictionary<string, object> data = new Dictionary<string, object>(); data["title"] = "タイトルです"; Foo foo = new Foo(); foo.Bar = "テスト"; data["fooTest"] = foo;
このIDictionary<string, object>をFPTemplateに渡します。
テンプレートファイル読み込み・ファイル出力
「FPTemplateTest.xls」というテンプレートファイルが実行ファイルと同じ場所にあるとします。
Streamとして読み、先程用意した埋め込みデータと一緒にFPTemplateに渡します。
HSSFWorkbook wb = null;
using (Stream s = new FileStream("FPTemplateTest.xls", FileMode.Open, FileAccess.Read)
{
try
{
wb = template.Process(is, data);
}
catch (FPParseException e)
{
//例外処理
throw;
}
catch (FPMergeException e)
{
//例外処理
throw;
}
}
using (Stream s = new FileStream(@"target\FPTemplateTest_out.xls", FileMode.Create, FileAccess.Write)
{
wb.Write(s);
}
テンプレートに文法上の誤りがあった場合、FPParseExceptionが投げられます。
データ埋め込み時にエラーが発生した場合、FPMergeExceptionが投げられます。
正常に処理が終了すると、データが埋め込まれたHSSFWorkbookが戻されます。
データ埋め込みメソッドには他に、
- Process(String, IDictionary<string, object>)
- Process(HSSFWorkbook, IDictionary<string, object>)
