FreeMarker 导出word,合并行和列
导出 合并 word freemarker 行和列
2023-06-13 09:17:01 时间
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>
相关文章
- 使用EasyExcel导出表格时合并单元格
- 导出Excel数据详解编程语言
- 导入Oracle11g 数据库的导出导入实战(oracle11g导出)
- 表的数据快速导出MySQL所有表数据的简单方法(mysql导出所有)
- Oracle数据导出:步骤指南(oracle导出数据脚本)
- MySQL数据导出Excel快速教程(mysql转excel)
- 让 Oracle 只导出索引的方法(oracle只导出索引)
- 数据PHP实现MySQL数据导出的实现方法(php导出mysql)
- Oracle数据导出:实现数据快速准确导出(oracle数据导出语句)
- Oracle导出至Word中:快速实现步骤(oracle导出word)
- MySQL索引数据的导出指南(mysql索引导出)
- Oracle数据导出乱码解决方案(oracle导出数据乱码)
- MySQL导出SQL:把数据安全备份(mysql 导出 sql)
- 如何在MySQL中不导出数据(mysql 不导出数据)
- MySQL数据表导出简单高效的方法(mysql下导出表)
- Yii中使用PHPExcel导出Excel的方法