这几天开发一个报表导出功能,使用的freemarker模板引擎。
第一次使用走了不少弯路。。。
首先是修改模版,将数据字段用占位符替换,这里注意占位符尽量用单个字符如${Y},因为Doc转Xml后占位符太长可能会被分隔开,
如果被拆开,到时候还得修改xml文件。修改模版文件的时候,由于之前习惯用ue,后来发现用ue改这个文件就是个坑,此处省略。。。推荐使用notepad
还有模版不命名成ftl也行,直接xml就行,后缀名而已,不影响使用。
还有就是循环list的问题
找到开始循环行<w:tr>、</w:tr>节点
<#list export.reportErrInfoList as Y>
${Y_index+1} //序号
${Y.name}
${Y.age}
</#list>
这里发现了一个问题 当时我写的占位符是${export.Province},一直报错,后来改为${export.province}神奇的对了。
模版文件放置的目录那里也走了不少弯路,
第一次使用的是configuration.setClassForTemplateLoading(this.getClass(), "/");这种方法加载模版文件,我把文件放在项目根目录下,获取文件模版失败。
然后各种路径下都放了模版,就是获取不到模版文件,后来经验证maven项目应该放在src目录下...