diff --git a/src/main/java/com/fr/io/ExportApi.java b/src/main/java/com/fr/io/ExportApi.java index c858618..b4a43e5 100644 --- a/src/main/java/com/fr/io/ExportApi.java +++ b/src/main/java/com/fr/io/ExportApi.java @@ -7,11 +7,13 @@ import com.fr.config.activator.BaseDBActivator; import com.fr.config.activator.ConfigurationActivator; import com.fr.env.operator.CommonOperatorImpl; import com.fr.general.I18nResource; +import com.fr.general.log.Log4jConfig; +import com.fr.general.log.parser.ExtraPatternParserManager; import com.fr.health.activator.ModuleHealActivator; +import com.fr.io.TemplateWorkBookIO; +import com.fr.io.exporter.*; import com.fr.io.exporter.excel.stream.StreamExcel2007Exporter; import com.fr.main.impl.WorkBook; -import com.fr.main.workbook.ResultWorkBook; -import com.fr.module.Module; import com.fr.module.tool.ActivatorToolBox; import com.fr.report.ReportActivator; import com.fr.report.RestrictionActivator; @@ -19,20 +21,31 @@ import com.fr.report.module.ReportBaseActivator; import com.fr.report.write.WriteActivator; import com.fr.scheduler.SchedulerActivator; import com.fr.stable.WriteActor; +import com.fr.stable.resource.ResourceLoader; import com.fr.store.StateServiceActivator; +import com.fr.third.apache.log4j.Level; +import com.fr.third.apache.log4j.PropertyConfigurator; import com.fr.workspace.simple.SimpleWork; -import java.io.File; import java.io.FileOutputStream; +import java.io.IOException; +import java.util.HashMap; +import java.util.Map; +import java.util.Properties; public class ExportApi { + public static void main(String[] args) { - // 定义报表运行环境,用于执行报表 - Module module = ActivatorToolBox.simpleLink(new BaseDBActivator(), + + initLog4j(); + + /**定义报表运行环境,用于执行报表*/ + com.fr.module.Module module = ActivatorToolBox.simpleLink(new BaseDBActivator(), new ConfigurationActivator(), new StandaloneModeActivator(), new ModuleHealActivator(), + //2020.4.26jar包之前的版本,替换成StateServerActivator() new StateServiceActivator(), new SchedulerActivator(), new ReportBaseActivator(), @@ -41,67 +54,73 @@ public class ExportApi { new WriteActivator(), new ChartBaseActivator()); SimpleWork.supply(CommonOperator.class, new CommonOperatorImpl()); - String envpath = "E:\\默认工程\\webroot\\WEB-INF\\";//工程路径 + //定义工程路径 + String envpath = "D:\\javatools\\FineReport_10.0\\webapps\\webroot\\WEB-INF\\"; SimpleWork.checkIn(envpath); I18nResource.getInstance(); module.start(); - - ResultWorkBook rworkbook = null; + /**输出模板*/ try { - // 未执行模板工作薄 - WorkBook workbook = (WorkBook) TemplateWorkBookIO - .readTemplateWorkBook("test.cpt"); - // 获取报表参数并设置值,导出内置数据集时数据集会根据参数值查询出结果从而转为内置数据集 -// Parameter[] parameters = workbook.getParameters(); -// parameters[0].setValue("华东"); - // 定义parametermap用于执行报表,将执行后的结果工作薄保存为rworkBook - java.util.Map parameterMap = new java.util.HashMap(); -// for (int i = 0; i < parameters.length; i++) { -// parameterMap.put(parameters[i].getName(), parameters[i] -// .getValue()); -// } + // 定义输出的模板路径,以reportlets为根目录 + WorkBook workbook = (WorkBook) TemplateWorkBookIO.readTemplateWorkBook("GettingStarted.cpt"); + // 设置传入的参数 + Map parameterMap = new HashMap(); + parameterMap.put("地区","华东"); + // 定义输出流 FileOutputStream outputStream; -// // 将未执行模板工作薄导出为内置数据集模板 -// outputStream = new FileOutputStream(new File("/Users//susie//Downloads//EmbExport.cpt")); -// EmbeddedTableDataExporter templateExporter = new EmbeddedTableDataExporter(); -// templateExporter.export(outputStream, workbook); -// // 将模板工作薄导出模板文件,在导出前您可以编辑导入的模板工作薄,可参考报表调用章节 -// outputStream = new FileOutputStream(new File("/Users//susie//Downloads//TmpExport.cpt")); -// ((WorkBook) workbook).export(outputStream); -// // 将结果工作薄导出为2003Excel文件 -// outputStream = new FileOutputStream(new File("/Users//susie//Downloads//ExcelExport.xls")); -// ExcelExporter ExcelExport = new ExcelExporter(); -// ExcelExport.export(outputStream, workbook.execute(parameterMap, new WriteActor())); - // 将结果工作薄导出为Excel文件 - outputStream = new FileOutputStream(new File("D://tttt//1528.xlsx")); + String outputUrl="F:\\io\\WorkBook\\"; + + /**将模板工作薄导出为内置数据集模板文件*/ + outputStream = new FileOutputStream(new java.io.File(outputUrl+"EmbExport.cpt")); + EmbeddedTableDataExporter templateExporter = new EmbeddedTableDataExporter(); + templateExporter.export(outputStream, workbook); + + /**将模板工作薄导出为模板文件*/ + outputStream = new FileOutputStream(new java.io.File(outputUrl+"TmpExport.cpt")); + ((WorkBook) workbook).export(outputStream); + + /**将结果工作薄导出为2003Excel文件*/ + outputStream = new FileOutputStream(new java.io.File(outputUrl+"ExcelExport2003.xls")); + ExcelExporter ExcelExport = new ExcelExporter(); + ExcelExport.export(outputStream, workbook.execute(parameterMap, new WriteActor())); + + /**将结果工作薄导出为2007Excel文件*/ + outputStream = new FileOutputStream(new java.io.File(outputUrl+"ExcelExport2007.xlsx")); StreamExcel2007Exporter ExcelExport1 = new StreamExcel2007Exporter(); ExcelExport1.export(outputStream, workbook.execute(parameterMap, new WriteActor())); -// // 将结果工作薄导出为Word文件 -// outputStream = new FileOutputStream(new File("/Users//susie//Downloads//WordExport.doc")); -// WordExporter WordExport = new WordExporter(); -// WordExport.export(outputStream, workbook.execute(parameterMap, new WriteActor())); -// // 将结果工作薄导出为Pdf文件 -// outputStream = new FileOutputStream(new File("/Users//susie//Downloads//PdfExport.pdf")); -// PDFExporter PdfExport = new PDFExporter(); -// PdfExport.export(outputStream, workbook.execute(parameterMap, new WriteActor())); -// // 将结果工作薄导出为Txt文件(txt文件本身不支持表格、图表等,被导出模板一般为明细表) -// outputStream = new FileOutputStream(new File("/Users//susie//Downloads//TxtExport.txt")); -// TextExporter TxtExport = new TextExporter(); -// TxtExport.export(outputStream, workbook.execute(parameterMap, new WriteActor())); -// // 将结果工作薄导出为Csv文件 -// outputStream = new FileOutputStream(new File("/Users//susie//Downloads//CsvExport.csv")); -// CSVExporter CsvExport = new CSVExporter(); -// CsvExport.export(outputStream, workbook.execute(parameterMap, new WriteActor())); -// //将结果工作薄导出为SVG文件 -// outputStream = new FileOutputStream(new File("/Users//susie//Downloads//SvgExport.svg")); -// SVGExporter SvgExport = new SVGExporter(); -// SvgExport.export(outputStream, workbook.execute(parameterMap, new WriteActor())); -// //将结果工作薄导出为image文件 -// outputStream = new FileOutputStream(new File("/Users//susie//Downloads//PngExport.png")); -// ImageExporter ImageExport = new ImageExporter(); -// ImageExport.export(outputStream, workbook.execute(parameterMap, new WriteActor())); + + /**将结果工作薄导出为Word文件*/ + outputStream = new FileOutputStream(new java.io.File(outputUrl+"WordExport.doc")); + WordExporter WordExport = new WordExporter(); + WordExport.export(outputStream, workbook.execute(parameterMap, new WriteActor())); + + /**将结果工作薄导出为Pdf文件*/ + outputStream = new FileOutputStream(new java.io.File(outputUrl+"PdfExport.pdf")); + PDFExporter PdfExport = new PDFExporter(); + PdfExport.export(outputStream, workbook.execute(parameterMap, new WriteActor())); + + /**将结果工作薄导出为Txt文件(txt文件本身不支持表格、图表等,被导出模板一般为明细表)*/ + outputStream = new FileOutputStream(new java.io.File(outputUrl+"TxtExport.txt")); + TextExporter TxtExport = new TextExporter(); + TxtExport.export(outputStream, workbook.execute(parameterMap, new WriteActor())); + + /**将结果工作薄导出为Csv文件*/ + outputStream = new FileOutputStream(new java.io.File(outputUrl+"CsvExport.csv")); + CSVExporter CsvExport = new CSVExporter(); + CsvExport.export(outputStream, workbook.execute(parameterMap, new WriteActor())); + + /**将结果工作薄导出为SVG文件*/ + outputStream = new FileOutputStream(new java.io.File(outputUrl+"SvgExport.svg")); + SVGExporter SvgExport = new SVGExporter(); + SvgExport.export(outputStream, workbook.execute(parameterMap, new WriteActor())); + + /**将结果工作薄导出为image文件*/ + outputStream = new FileOutputStream(new java.io.File(outputUrl+"PngExport.png")); + ImageExporter ImageExport = new ImageExporter(); + ImageExport.export(outputStream, workbook.execute(parameterMap, new WriteActor())); + outputStream.close(); module.stop(); } catch (Exception e) { @@ -110,4 +129,25 @@ public class ExportApi { SimpleWork.checkOut(); } } + + private static void initLog4j() { + + PropertyConfigurator.configure(loadLog4jPropertiesFromJar(Level.toLevel("INFO"))); + } + + private static Properties loadLog4jPropertiesFromJar(Level level) { + + Properties properties = new Properties(); + + System.setProperty("LOG_HOME", System.getProperty("user.dir")); + System.setProperty("LOG_ROOT_LEVEL", level.toString()); + ExtraPatternParserManager.setSystemProperty(); + try { + properties.load(ResourceLoader.getResourceAsStream("/com/fr/general/log/log4j.properties", Log4jConfig.class)); + } catch (IOException ignore) { + //do nothing + } + + return properties; + } } \ No newline at end of file