基本的な流れ
作成したテンプレートを利用してファイルを出力する方法は次の流れとなります。
- テンプレートオブジェクトの生成
- 埋め込みデータ生成
- テンプレートファイル読み込み・ファイル出力
ファイル出力
テンプレートオブジェクトの生成
まず、ファイルを出力するオブジェクト「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>)