FreeMarker 导出word表格,怎么导出就不说了,往上一大堆,主要记录一下合并行和列,有说的不对的地方希望大家指点
合并行
开始合并标记:<w:vmerge w:val="restart"/>
结束合并:<w:vmerge/>
注意大小写,有的大写M,试了下并不管用,可能和版本有关系(我用的是2.3.20),标记的写入都是在<w:tcW >后边,我也不清除这个标签具体是什么意思,还没来得及去看,有大佬知道记得留言 学习学习哈哈
<w:tc> <#--一个tc代表一个单元格--> <w:tcPr> <w:tcW w:w="508" w:type="dxa"/> <#if item.week!=weekflag> <#--weekflag是我在循环外定义的一个遍历,用来记录上一次循环的值,第一次进来,直接开始写入合并标记--> <w:vmerge w:val="restart"/> <#else> <#--第二次相等时,结束合并--> <w:vmerge/> </#if> <#assign weekflag=item.week> <#--在循环的底部赋值--> <w:shd w:val="clear" w:color="auto" w:fill="auto"/> <w:vAlign w:val="center"/> </w:tcPr> <w:p> <w:pPr> <w:pStyle w:val="a8"/> <w:keepNext w:val="off"/> <w:keepLines w:val="off"/> <w:widowControl/> <w:supressLineNumbers w:val="off"/> <w:shd w:val="clear" w:color="auto" w:fill="FFFFFF"/> <w:tabs> <w:tab w:val="left" w:pos="916"/> <w:tab w:val="left" w:pos="1832"/> <w:tab w:val="left" w:pos="2748"/> <w:tab w:val="left" w:pos="3664"/> <w:tab w:val="left" w:pos="4580"/> <w:tab w:val="left" w:pos="5496"/> <w:tab w:val="left" w:pos="6412"/> <w:tab w:val="left" w:pos="7328"/> <w:tab w:val="left" w:pos="8244"/> <w:tab w:val="left" w:pos="9160"/> <w:tab w:val="left" w:pos="10076"/> <w:tab w:val="left" w:pos="10992"/> <w:tab w:val="left" w:pos="11908"/> <w:tab w:val="left" w:pos="12824"/> <w:tab w:val="left" w:pos="13740"/> <w:tab w:val="left" w:pos="14656"/> </w:tabs> <w:rPr> <w:rFonts w:fareast="宋体" w:hint="default"/> <w:b/> <w:lang w:val="EN-US" w:fareast="ZH-CN"/> </w:rPr> </w:pPr> <w:r> <w:rPr> <w:rFonts w:fareast="宋体" w:hint="fareast"/> <w:b/> <w:lang w:val="EN-US" w:fareast="ZH-CN"/> </w:rPr> <w:t>${item.week}</w:t> </w:r> </w:p> </w:tc>
我的逻辑是两行合并一次;
合并列
开始合并标记:<w:gridSpan w:val="2">
结束合并:</w:gridSpan>
2 是代表合并列的数量
开始标记和结束标记需要写在不同的单元格内,即<w:tc>
内,两个标签的间隔单元格就是合并的单元格的数量
<w:tc> <w:tcPr> <w:tcW w:w="650" w:type="dxa"/> <#--这里是当前循环的属性做了比较-> <#if item.position==item.position2 && item.duty="晚上"> <w:gridSpan w:val="2"> </#if> <w:shd w:val="clear" w:color="auto" w:fill="auto"/> <w:vAlign w:val="center"/> </w:tcPr> <w:p> <w:pPr> <w:jc w:val="center"/> <w:rPr> <w:rFonts w:hint="default"/> <w:b/> <w:lang w:val="EN-US" w:fareast="ZH-CN"/> </w:rPr> </w:pPr> <w:r> <w:rPr> <w:rFonts w:hint="fareast"/> <w:b/> <w:lang w:val="EN-US" w:fareast="ZH-CN"/> </w:rPr> <w:t>${item.position}</w:t> </w:r> </w:p> </w:tc> <w:tc> <w:tcPr> <w:tcW w:w="636" w:type="dxa"/> <#--每天的晚上结束合并--> <#if item.position==item.position2 && item.duty="晚上"> </w:gridSpan> </#if> <w:shd w:val="clear" w:color="auto" w:fill="auto"/> <w:vAlign w:val="center"/> </w:tcPr> <w:p> <w:pPr> <w:jc w:val="center"/> <w:rPr> <w:rFonts w:hint="default"/> <w:b/> <w:lang w:val="EN-US" w:fareast="ZH-CN"/> </w:rPr> </w:pPr> <w:r> <w:rPr> <w:rFonts w:hint="fareast"/> <w:b/> <w:lang w:val="EN-US" w:fareast="ZH-CN"/> </w:rPr> <w:t>${item.position2}</w:t> </w:r> </w:p> </w:tc>