data.put("order", "12orderAA<hr/>good"); data.put("orderId", "12order<hr/>a");
<th class="tdBorder" style="border: 0px; border-bottom: 1px solid #000000;border-left: 1px solid #000000;border-right: 1px solid #000000;border-top: 1px solid #000000;transform: scaleY(0.5); line-height:18px; text-align: center; vertical-align:middle; ">${order}</th> <th class="tdBorder" style=" border: 0px; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000; border-top: 1px solid #000000; transform: scaleY(0.5); line-height:18px; text-align: center; vertical-align:middle; ">${orderId}</th>
由于第一列是动态变化的,第一列的每行右边的数据也是变化的,左边的一行有可能对应右边的2行或3行或n行。
没研究处理怎么用freemarker宏嵌套或多个list循环再多行合并,先用最简单粗暴的办法,把需要合并的内容拼接到一个字段,用换行符或下划线处理,设置单元格内的行高。