Java 使用xdocreport中的模板填充表
在使用xdocreport库时,我使用以下模板填充表 我正在使用的Java代码如下所示:Java 使用xdocreport中的模板填充表,java,docx,xdocreport,Java,Docx,Xdocreport,在使用xdocreport库时,我使用以下模板填充表 我正在使用的Java代码如下所示: InputStream in = GenerateStakeholderReport.class.getResourceAsStream( "StakeholderReport_Template.docx" ); IXDocReport report = XDocReportRegistry.getRegistry().loadReport( in, Templat
InputStream in = GenerateStakeholderReport.class.getResourceAsStream( "StakeholderReport_Template.docx" );
IXDocReport report = XDocReportRegistry.getRegistry().loadReport( in, TemplateEngineKind.Velocity );
FieldsMetadata metadata = report.createFieldsMetadata();
metadata.load( "stakeholders", StakeHolder.class, true );
IContext context = report.createContext();
Project project = new Project( "Project 1", "A project for Oragisational Change",
"System Implementation", "Bob Yardley","Peter");
context.put( "project", project );
List<StakeHolder> stakeholders = new ArrayList<StakeHolder>();
stakeholders.add( new StakeHolder( "01", "External", "President", "Head Quarter", "High", "5000", "Key Infulencer" ) );
stakeholders.add( new StakeHolder( "02", "Internal", "CEO", "Head Quarter", "High", "2500", "Key Infulencer" ) );
context.put( "stakeholders", stakeholders );
OutputStream out = new FileOutputStream( new File( "StakeHolderReport_Out.docx" ) );
report.process( context, out );
InputStream in=GenerateStakeholderReport.class.getResourceAsStream(“stateHolderReport_Template.docx”);
IXDocReport report=XDocReportRegistry.getRegistry().loadReport(在TemplateEngineKind.Velocity中);
FieldsMetadata=report.createFieldsMetadata();
加载(“涉众”,涉众.class,true);
IContext context=report.createContext();
项目=新项目(“项目1”,“用于组织地理变更的项目”,
“系统实施”、“鲍勃·亚德利”、“彼得”);
上下文。put(“项目”,project);
List涉众=新建ArrayList();
利益相关者。添加(新利益相关者(“01”、“外部”、“总裁”、“总部”、“高”、“5000”、“主要影响者”);
利益相关者。添加(新利益相关者(“02”、“内部”、“首席执行官”、“总部”、“高层”、“2500”、“主要影响者”));
上下文。put(“利益相关者”,利益相关者);
OutputStream out=新文件OutputStream(新文件(“StakeHolderReport_out.docx”);
报告。过程(上下文、输出);
我得到的结果不是我所期望的;未填充表行(应该有2行)。此外,其中两个列标题未显示
我做错了什么?尝试将
@行之前的
前置到第一个合并字段,在\foreach…
之前,在行之后的@前置到最后一个字段,在\end
之前
见此:将foreach放在一列中。你必须排队
拆下前柱和第一柱的末端
在表头和表体之间创建一行
将foreach代码放在这一行。-->#foreach(利益相关者中的美元)
在表的页脚处创建一行,并将“结束”放在那里。-->#结束
从第一列移除#foreach。