Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/386.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用xdocreport中的模板填充表_Java_Docx_Xdocreport - Fatal编程技术网

Java 使用xdocreport中的模板填充表

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

在使用xdocreport库时,我使用以下模板填充表

我正在使用的Java代码如下所示:

            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。