freeMarker动态生成表格(已有固定表头)

freeMarker动态生成表格(已有固定表头)

在已经有表头的情况下,动态生成表格数据:

ftl标签代码:

<#listpartnerList> <#itemsaspartnerInfo> <w:tr> <w:tblPrEx> <w:tblBorders> <w:topw:val=“single”w:color=“auto”w:sz=“4”w:space=“0”/> <w:leftw:val=“single”w:color=“auto”w:sz=“4”w:space=“0”/> <w:bottomw:val=“single”w:color=“auto”w:sz=“4”w:space=“0”/> <w:rightw:val=“single”w:color=“auto”w:sz=“4”w:space=“0”/> <w:insideHw:val=“single”w:color=“auto”w:sz=“4”w:space=“0”/> <w:insideVw:val=“single”w:color=“auto”w:sz=“4”w:space=“0”/> </w:tblBorders> <w:tblCellMar> <w:topw:w=“0”w:type=“dxa”/> <w:leftw:w=“108”w:type=“dxa”/> <w:bottomw:w=“0”w:type=“dxa”/> <w:rightw:w=“108”w:type=“dxa”/> </w:tblCellMar> </w:tblPrEx> <w:tc> <w:tcPr> <w:tcWw:w=“1125”w:type=“pct”/> <w:noWrapw:val=“0”/> <w:vAlignw:val=“top”/> </w:tcPr> <w:p> <w:pPr> <w:pStylew:val=“19”/> <w:pageBreakBeforew:val=“0”/> <w:tabs> <w:tabw:val=“left”w:pos=“702”/> <w:tabw:val=“left”w:pos=“8681”/> </w:tabs> <w:kinsoku/> <w:wordWrap/> <w:overflowPunct/> <w:topLinePunctw:val=“0”/> <w:bidiw:val=“0”/> <w:snapToGrid/> <w:spacingw:after=“0”w:afterAutospacing=“0”w:line=“360”w:lineRule=“auto”/> <w:jcw:val=“center”/> <w:textAlignmentw:val=“auto”/> <w:rPr> <w:rFontsw:hint=“eastAsia”w:ascii=“宋体”w:hAnsi=“宋体”w:eastAsia=“宋体”w:cs=“宋体”/> <w:colorw:val=“auto”/> <w:szw:val=“24”/> <w:szCsw:val=“24”/> <w:highlightw:val=“none”/> <w:vertAlignw:val=“baseline”/> <w:langw:val=“en-US”w:eastAsia=“zh-CN”w:bidi=“en-US”/> </w:rPr> </w:pPr> <w:r> <w:rPr> <w:rFontsw:hint=“eastAsia”w:ascii=“宋体”w:hAnsi=“宋体”w:eastAsia=“宋体”w:cs=“宋体”/> <w:colorw:val=“auto”/> <w:szw:val=“24”/> <w:szCsw:val=“24”/> <w:highlightw:val=“none”/> <w:vertAlignw:val=“baseline”/> <w:langw:val=“en-US”w:eastAsia=“zh-CN”w:bidi=“en-US”/> </w:rPr> <w:txml:space=“preserve”>\({partnerInfo.partnerName}</w:t> </w:r> </w:p> </w:tc> <w:tc> <w:tcPr> <w:tcWw:w="938"w:type="pct"/> <w:noWrapw:val="0"/> <w:vAlignw:val="top"/> </w:tcPr> <w:p> <w:pPr> <w:pStylew:val="19"/> <w:pageBreakBeforew:val="0"/> <w:tabs> <w:tabw:val="left"w:pos="702"/> <w:tabw:val="left"w:pos="8681"/> </w:tabs> <w:kinsoku/> <w:wordWrap/> <w:overflowPunct/> <w:topLinePunctw:val="0"/> <w:bidiw:val="0"/> <w:snapToGrid/> <w:spacingw:after="0"w:afterAutospacing="0"w:line="360"w:lineRule="auto"/> <w:jcw:val="center"/> <w:textAlignmentw:val="auto"/> <w:rPr> <w:rFontsw:hint="eastAsia"w:ascii="宋体"w:hAnsi="宋体"w:eastAsia="宋体"w:cs="宋体"/> <w:colorw:val="auto"/> <w:szw:val="24"/> <w:szCsw:val="24"/> <w:highlightw:val="none"/> <w:vertAlignw:val="baseline"/> <w:langw:val="en-US"w:eastAsia="zh-CN"w:bidi="en-US"/> </w:rPr> </w:pPr> <w:r> <w:rPr> <w:rFontsw:hint="eastAsia"w:ascii="宋体"w:hAnsi="宋体"w:eastAsia="宋体"w:cs="宋体"/> <w:colorw:val="auto"/> <w:szw:val="24"/> <w:szCsw:val="24"/> <w:highlightw:val="none"/> <w:vertAlignw:val="baseline"/> <w:langw:val="en-US"w:eastAsia="zh-CN"w:bidi="en-US"/> </w:rPr> <w:txml:space="preserve">\){partnerInfo.partnerPosition}</w:t> </w:r> </w:p> </w:tc> <w:tc> <w:tcPr> <w:tcWw:w=“1781”w:type=“pct”/> <w:noWrapw:val=“0”/> <w:vAlignw:val=“top”/> </w:tcPr> <w:p> <w:pPr> <w:pStylew:val=“19”/> <w:pageBreakBeforew:val=“0”/> <w:tabs> <w:tabw:val=“left”w:pos=“702”/> <w:tabw:val=“left”w:pos=“8681”/> </w:tabs> <w:kinsoku/> <w:wordWrap/> <w:overflowPunct/> <w:topLinePunctw:val=“0”/> <w:bidiw:val=“0”/> <w:snapToGrid/> <w:spacingw:after=“0”w:afterAutospacing=“0”w:line=“360”w:lineRule=“auto”/> <w:jcw:val=“center”/> <w:textAlignmentw:val=“auto”/> <w:rPr> <w:rFontsw:hint=“eastAsia”w:ascii=“宋体”w:hAnsi=“宋体”w:eastAsia=“宋体”w:cs=“宋体”/> <w:colorw:val=“auto”/> <w:szw:val=“24”/> <w:szCsw:val=“24”/> <w:highlightw:val=“none”/> <w:vertAlignw:val=“baseline”/> <w:langw:val=“en-US”w:eastAsia=“zh-CN”w:bidi=“en-US”/> </w:rPr> </w:pPr> <w:r> <w:rPr> <w:rFontsw:hint=“eastAsia”w:ascii=“宋体”w:hAnsi=“宋体”w:eastAsia=“宋体”w:cs=“宋体”/> <w:colorw:val=“auto”/> <w:szw:val=“24”/> <w:szCsw:val=“24”/> <w:highlightw:val=“none”/> <w:vertAlignw:val=“baseline”/> <w:langw:val=“en-US”w:eastAsia=“zh-CN”w:bidi=“en-US”/> </w:rPr> <w:txml:space=“preserve”>\({partnerInfo.partnerIdCard}</w:t> </w:r> </w:p> </w:tc> <w:tc> <w:tcPr> <w:tcWw:w="1154"w:type="pct"/> <w:noWrapw:val="0"/> <w:vAlignw:val="top"/> </w:tcPr> <w:p> <w:pPr> <w:pStylew:val="19"/> <w:pageBreakBeforew:val="0"/> <w:tabs> <w:tabw:val="left"w:pos="702"/> <w:tabw:val="left"w:pos="8681"/> </w:tabs> <w:kinsoku/> <w:wordWrap/> <w:overflowPunct/> <w:topLinePunctw:val="0"/> <w:bidiw:val="0"/> <w:snapToGrid/> <w:spacingw:after="0"w:afterAutospacing="0"w:line="360"w:lineRule="auto"/> <w:jcw:val="center"/> <w:textAlignmentw:val="auto"/> <w:rPr> <w:rFontsw:hint="eastAsia"w:ascii="宋体"w:hAnsi="宋体"w:eastAsia="宋体"w:cs="宋体"/> <w:colorw:val="auto"/> <w:szw:val="24"/> <w:szCsw:val="24"/> <w:highlightw:val="none"/> <w:vertAlignw:val="baseline"/> <w:langw:val="en-US"w:eastAsia="zh-CN"w:bidi="en-US"/> </w:rPr> </w:pPr> <w:r> <w:rPr> <w:rFontsw:hint="eastAsia"w:ascii="宋体"w:hAnsi="宋体"w:eastAsia="宋体"w:cs="宋体"/> <w:colorw:val="auto"/> <w:szw:val="24"/> <w:szCsw:val="24"/> <w:highlightw:val="none"/> <w:vertAlignw:val="baseline"/> <w:langw:val="en-US"w:eastAsia="zh-CN"w:bidi="en-US"/> </w:rPr> <w:txml:space="preserve">\){partnerInfo.partnerRemark}</w:t> </w:r> </w:p> </w:tc> </w:tr> </#items> </#list>

java代码:

publicclassWordExportUtil{ privatestaticLoggerLOGGER=LoggerFactory.getLogger(WordExportUtil.class); privatestaticWordExportUtilservice=null; privateWordExportUtil(){ super(); } staticWordExportUtilgetInstance(){ if(service==null){ synchronized(WordExportUtil.class){ if(service==null){ service=newWordExportUtil(); } } } returnservice; } /** *@paramtemplateFilePatheg:/template/test/test.ftl *@paramdataMap *@paramexportFilePatheg:/tmp/test/test123.doc *@paramloadType设置路径加载方式。1-绝对路径,2-项目相对路径 *@return *@throwsException */ FilecreateDocFile(StringtemplateFilePath,Map<String,Object>dataMap,StringexportFilePath,intloadType)throwsException{ Templatet=null; Configurationconfiguration=newConfiguration(Configuration.VERSION_2_3_22); configuration.setDefaultEncoding(“UTF-8”); try{ templateFilePath=pathReplace(templateFilePath); StringftlPath=templateFilePath.substring(0,templateFilePath.lastIndexOf(“/”)); if(loadType==1){ configuration.setDirectoryForTemplateLoading(newFile(ftlPath));//FTL文件所存在的位置 }else{ configuration.setClassForTemplateLoading(this.getClass(),ftlPath);//以类加载的方式查找模版文件路径 } StringftlFile=templateFilePath.substring(templateFilePath.lastIndexOf(“/”)+1); t=configuration.getTemplate(ftlFile);//模板文件名 FileoutFile=newFile(exportFilePath); Writerout=null; out=newBufferedWriter(newOutputStreamWriter(newFileOutputStream(outFile))); t.process(dataMap,out); }catch(Exceptione){ LOGGER.error(“导出word文档出错”,e); throwe; } returnnull; } /** *把路径的\替换成/ * *@parampath *@return */ privateStringpathReplace(Stringpath){ while(path!=null&&path.contains(“\”)){ path=path.replace(“\”,“/”); } returnpath; } publicstaticvoidmain(String[]args){ Map<String,Object>dataMap=newHashMap<String,Object>(); getData(dataMap); StringtemplateFile=“C:\Users\admin\Desktop\文档\方案–完整版2.ftl”; StringexportFile=“C:\Users\admin\Desktop\生成文档名称”+“.doc”; try{ WordExportUtil.getInstance().createDocFile(templateFile,dataMap,exportFile,1); }catch(Exceptione){ e.printStackTrace(); } } publicstaticvoidgetData(Map<String,Object>dataMap){ List<PartnerInfo>partnerList=newArrayList<>(); PartnerInfopartnerInfo1=newPartnerInfo(“1”,“2”,“2”,“3”); PartnerInfopartnerInfo2=newPartnerInfo(“1”,“2”,“2”,“3”); PartnerInfopartnerInfo3=newPartnerInfo(“1”,“2”,“2”,“3”); partnerList.add(partnerInfo1); partnerList.add(partnerInfo2); partnerList.add(partnerInfo3); dataMap.put(“partnerList”,partnerList); }}

本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。