@ -7,11 +7,13 @@ import com.fr.config.activator.BaseDBActivator;
import com.fr.config.activator.ConfigurationActivator ;
import com.fr.config.activator.ConfigurationActivator ;
import com.fr.env.operator.CommonOperatorImpl ;
import com.fr.env.operator.CommonOperatorImpl ;
import com.fr.general.I18nResource ;
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.health.activator.ModuleHealActivator ;
import com.fr.io.TemplateWorkBookIO ;
import com.fr.io.exporter.* ;
import com.fr.io.exporter.excel.stream.StreamExcel2007Exporter ;
import com.fr.io.exporter.excel.stream.StreamExcel2007Exporter ;
import com.fr.main.impl.WorkBook ;
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.module.tool.ActivatorToolBox ;
import com.fr.report.ReportActivator ;
import com.fr.report.ReportActivator ;
import com.fr.report.RestrictionActivator ;
import com.fr.report.RestrictionActivator ;
@ -19,20 +21,31 @@ import com.fr.report.module.ReportBaseActivator;
import com.fr.report.write.WriteActivator ;
import com.fr.report.write.WriteActivator ;
import com.fr.scheduler.SchedulerActivator ;
import com.fr.scheduler.SchedulerActivator ;
import com.fr.stable.WriteActor ;
import com.fr.stable.WriteActor ;
import com.fr.stable.resource.ResourceLoader ;
import com.fr.store.StateServiceActivator ;
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 com.fr.workspace.simple.SimpleWork ;
import java.io.File ;
import java.io.FileOutputStream ;
import java.io.FileOutputStream ;
import java.io.IOException ;
import java.util.HashMap ;
import java.util.Map ;
import java.util.Properties ;
public class ExportApi {
public class ExportApi {
public static void main ( String [ ] args ) {
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 ConfigurationActivator ( ) ,
new StandaloneModeActivator ( ) ,
new StandaloneModeActivator ( ) ,
new ModuleHealActivator ( ) ,
new ModuleHealActivator ( ) ,
//2020.4.26jar包之前的版本,替换成StateServerActivator()
new StateServiceActivator ( ) ,
new StateServiceActivator ( ) ,
new SchedulerActivator ( ) ,
new SchedulerActivator ( ) ,
new ReportBaseActivator ( ) ,
new ReportBaseActivator ( ) ,
@ -41,67 +54,73 @@ public class ExportApi {
new WriteActivator ( ) ,
new WriteActivator ( ) ,
new ChartBaseActivator ( ) ) ;
new ChartBaseActivator ( ) ) ;
SimpleWork . supply ( CommonOperator . class , new CommonOperatorImpl ( ) ) ;
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 ) ;
SimpleWork . checkIn ( envpath ) ;
I18nResource . getInstance ( ) ;
I18nResource . getInstance ( ) ;
module . start ( ) ;
module . start ( ) ;
/**输出模板*/
ResultWorkBook rworkbook = null ;
try {
try {
// 未执行模板工作薄
// 定义输出的模板路径,以reportlets为根目录
WorkBook workbook = ( WorkBook ) TemplateWorkBookIO
WorkBook workbook = ( WorkBook ) TemplateWorkBookIO . readTemplateWorkBook ( "GettingStarted.cpt" ) ;
. readTemplateWorkBook ( "test.cpt" ) ;
// 设置传入的参数
// 获取报表参数并设置值,导出内置数据集时数据集会根据参数值查询出结果从而转为内置数据集
Map parameterMap = new HashMap ( ) ;
// Parameter[] parameters = workbook.getParameters();
parameterMap . put ( "地区" , "华东" ) ;
// 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());
// }
// 定义输出流
// 定义输出流
FileOutputStream outputStream ;
FileOutputStream outputStream ;
// // 将未执行模板工作薄导出为内置数据集模板
String outputUrl = "F:\\io\\WorkBook\\" ;
// outputStream = new FileOutputStream(new File("/Users//susie//Downloads//EmbExport.cpt"));
// EmbeddedTableDataExporter templateExporter = new EmbeddedTableDataExporter();
/**将模板工作薄导出为内置数据集模板文件*/
// templateExporter.export(outputStream, workbook);
outputStream = new FileOutputStream ( new java . io . File ( outputUrl + "EmbExport.cpt" ) ) ;
// // 将模板工作薄导出模板文件,在导出前您可以编辑导入的模板工作薄,可参考报表调用章节
EmbeddedTableDataExporter templateExporter = new EmbeddedTableDataExporter ( ) ;
// outputStream = new FileOutputStream(new File("/Users//susie//Downloads//TmpExport.cpt"));
templateExporter . export ( outputStream , workbook ) ;
// ((WorkBook) workbook).export(outputStream);
// // 将结果工作薄导出为2003Excel文件
/**将模板工作薄导出为模板文件*/
// outputStream = new FileOutputStream(new File("/Users//susie//Downloads//ExcelExport.xls"));
outputStream = new FileOutputStream ( new java . io . File ( outputUrl + "TmpExport.cpt" ) ) ;
// ExcelExporter ExcelExport = new ExcelExporter();
( ( WorkBook ) workbook ) . export ( outputStream ) ;
// ExcelExport.export(outputStream, workbook.execute(parameterMap, new WriteActor()));
// 将结果工作薄导出为Excel文件
/**将结果工作薄导出为2003Excel文件*/
outputStream = new FileOutputStream ( new File ( "D://tttt//1528.xlsx" ) ) ;
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 ( ) ;
StreamExcel2007Exporter ExcelExport1 = new StreamExcel2007Exporter ( ) ;
ExcelExport1 . export ( outputStream , workbook . execute ( parameterMap , new WriteActor ( ) ) ) ;
ExcelExport1 . export ( outputStream , workbook . execute ( parameterMap , new WriteActor ( ) ) ) ;
// // 将结果工作薄导出为Word文件
// outputStream = new FileOutputStream(new File("/Users//susie//Downloads//WordExport.doc"));
/**将结果工作薄导出为Word文件*/
// WordExporter WordExport = new WordExporter();
outputStream = new FileOutputStream ( new java . io . File ( outputUrl + "WordExport.doc" ) ) ;
// WordExport.export(outputStream, workbook.execute(parameterMap, new WriteActor()));
WordExporter WordExport = new WordExporter ( ) ;
// // 将结果工作薄导出为Pdf文件
WordExport . export ( outputStream , workbook . execute ( parameterMap , new WriteActor ( ) ) ) ;
// outputStream = new FileOutputStream(new File("/Users//susie//Downloads//PdfExport.pdf"));
// PDFExporter PdfExport = new PDFExporter();
/**将结果工作薄导出为Pdf文件*/
// PdfExport.export(outputStream, workbook.execute(parameterMap, new WriteActor()));
outputStream = new FileOutputStream ( new java . io . File ( outputUrl + "PdfExport.pdf" ) ) ;
// // 将结果工作薄导出为Txt文件(txt文件本身不支持表格、图表等,被导出模板一般为明细表)
PDFExporter PdfExport = new PDFExporter ( ) ;
// outputStream = new FileOutputStream(new File("/Users//susie//Downloads//TxtExport.txt"));
PdfExport . export ( outputStream , workbook . execute ( parameterMap , new WriteActor ( ) ) ) ;
// TextExporter TxtExport = new TextExporter();
// TxtExport.export(outputStream, workbook.execute(parameterMap, new WriteActor()));
/**将结果工作薄导出为Txt文件(txt文件本身不支持表格、图表等,被导出模板一般为明细表)*/
// // 将结果工作薄导出为Csv文件
outputStream = new FileOutputStream ( new java . io . File ( outputUrl + "TxtExport.txt" ) ) ;
// outputStream = new FileOutputStream(new File("/Users//susie//Downloads//CsvExport.csv"));
TextExporter TxtExport = new TextExporter ( ) ;
// CSVExporter CsvExport = new CSVExporter();
TxtExport . export ( outputStream , workbook . execute ( parameterMap , new WriteActor ( ) ) ) ;
// CsvExport.export(outputStream, workbook.execute(parameterMap, new WriteActor()));
// //将结果工作薄导出为SVG文件
/**将结果工作薄导出为Csv文件*/
// outputStream = new FileOutputStream(new File("/Users//susie//Downloads//SvgExport.svg"));
outputStream = new FileOutputStream ( new java . io . File ( outputUrl + "CsvExport.csv" ) ) ;
// SVGExporter SvgExport = new SVGExporter();
CSVExporter CsvExport = new CSVExporter ( ) ;
// SvgExport.export(outputStream, workbook.execute(parameterMap, new WriteActor()));
CsvExport . export ( outputStream , workbook . execute ( parameterMap , new WriteActor ( ) ) ) ;
// //将结果工作薄导出为image文件
// outputStream = new FileOutputStream(new File("/Users//susie//Downloads//PngExport.png"));
/**将结果工作薄导出为SVG文件*/
// ImageExporter ImageExport = new ImageExporter();
outputStream = new FileOutputStream ( new java . io . File ( outputUrl + "SvgExport.svg" ) ) ;
// ImageExport.export(outputStream, workbook.execute(parameterMap, new WriteActor()));
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 ( ) ;
outputStream . close ( ) ;
module . stop ( ) ;
module . stop ( ) ;
} catch ( Exception e ) {
} catch ( Exception e ) {
@ -110,4 +129,25 @@ public class ExportApi {
SimpleWork . checkOut ( ) ;
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 ;
}
}
}