OSDN Git Service

サンプル作成
[jaxcel/jaxcel.git] / Jaxcel / src / org / hanei / jaxcel / report / ReportMaker.java
index f57bb25..6b07e00 100644 (file)
@@ -19,6 +19,7 @@
 package org.hanei.jaxcel.report;\r
 \r
 import java.io.File;\r
+import java.io.FileOutputStream;\r
 import java.io.IOException;\r
 import java.io.InputStream;\r
 import java.io.OutputStream;\r
@@ -251,6 +252,48 @@ public class ReportMaker {
 \r
                log.trace("makeReport end");\r
        }\r
+\r
+        /**\r
+        * 入力ストリームのExcelテンプレートファイルにデータを挿入することでExcel帳票を生成、Excel帳票ファイルを出力する。<br>\r
+        * 入力ストリームは別途クローズが必要。\r
+        * \r
+        * @param template Excelテンプレートファイル入力ストリーム\r
+        * @param parameter テンプレートに挿入するデータ\r
+        * @param output Excel帳票出力ファイル\r
+        *\r
+        * @throws JaxcelInputException 入力例外発生時\r
+        * @throws JaxcelOutputException 出力例外発生時\r
+        */\r
+       public void makeReport(InputStream template, Map<String, Object> parameter, File output) {\r
+               log.trace("makeReport start");\r
+               \r
+               // Excel帳票生成\r
+               Workbook book = makeReport(template, parameter);\r
+               \r
+               // 出力ストリーム\r
+               FileOutputStream _output;\r
+               try {\r
+                       _output = new FileOutputStream(output);\r
+               }\r
+               catch(Exception e) {\r
+                       log.error("output file open error: {}", e.getMessage(), e);\r
+                       throw new JaxcelOutputException("output file open error");\r
+               }\r
+\r
+               // 出力\r
+               outputReport(book, _output);\r
+               try {\r
+                       _output.close();\r
+               } catch (IOException e) {\r
+                       log.error("output file close error: {}", e.getMessage(), e);\r
+                       throw new JaxcelOutputException("output file close error");\r
+               }\r
+\r
+               // テンプレートファイルクローズ\r
+               close();\r
+\r
+               log.trace("makeReport end");\r
+       }\r
        \r
        /**\r
         * Excelテンプレートファイルにデータを挿入することでExcel帳票を生成、Workbookオブジェクトを返却する。<br>\r
@@ -319,6 +362,47 @@ public class ReportMaker {
 \r
                log.trace("makeReport end");\r
        }\r
+\r
+       /**\r
+        * Excelテンプレートファイルにデータを挿入することでExcel帳票を生成、Excel帳票ファイルを出力する。<br>\r
+        * \r
+        * @param template Excelテンプレートファイル\r
+        * @param parameter テンプレートに挿入するデータ\r
+        * @param output Excel帳票出力ファイル\r
+        * \r
+        * @throws JaxcelInputException 入力例外発生時\r
+        * @throws JaxcelOutputException 出力例外発生時\r
+        */\r
+       public void makeReport(File template, Map<String, Object> parameter, File output) {\r
+               log.trace("makeReport start");\r
+\r
+               // Workbook生成\r
+               Workbook book = makeReport(template, parameter);\r
+\r
+               // 出力ストリーム\r
+               FileOutputStream _output;\r
+               try {\r
+                       _output = new FileOutputStream(output);\r
+               }\r
+               catch(Exception e) {\r
+                       log.error("output file open error: {}", e.getMessage(), e);\r
+                       throw new JaxcelOutputException("output file open error");\r
+               }\r
+\r
+               // 出力\r
+               outputReport(book, _output);\r
+               try {\r
+                       _output.close();\r
+               } catch (IOException e) {\r
+                       log.error("output file close error: {}", e.getMessage(), e);\r
+                       throw new JaxcelOutputException("output file close error");\r
+               }\r
+               \r
+               // テンプレートファイルクローズ\r
+               close();\r
+\r
+               log.trace("makeReport end");\r
+       }\r
        \r
        /**\r
         * ExcelテンプレートのWorkbookオブジェクトにデータを挿入することでExcel帳票を生成する。<br>\r