使用JXLS将两个动态网格放在一起

时间:2015-09-28 15:38:18

标签: jxls

我想定义一个与JXLS(当前版本2.2.5)一起使用的Excel模板,以便有一个动态网格(即我不知道之前的列数),以及右边,另一个网格:

Header 1.1 | Header 1.2 |    | Header 2.1 | Header 2.2 | Header 2.3
-------------------------    --------------------------------------
A            B                 C            D            E
F            G                 H            I            J

两个网格的行数相同,但我不想合并它们,因为它们有不同的样式。

是否有可能,如果是的话:怎么样?

我尝试了来自jxls-demo集合的GridCommandDemo,并将一些静态文本(开头)放入带有网格的区域右侧的单元格中,但它只是被覆盖了。我原以为它会被移到右边。

2 个答案:

答案 0 :(得分:4)

您可以在右侧或底侧拥有任意数量的网格。 但是你应该改变包含它们的父区域。

来自jxls-demo集合的GridCommandDemo演示了具有单个网格的简单用例。要为两个网格调整它,您应修改模板以添加其他网格,并修改父区域(通过 jx:area 命令的 lastCell 属性)以包含所有这些网格

在这种情况下,在父区域转换期间,所有网格和静态数据都将被正确移位。

答案 1 :(得分:0)

恢复这个已有5年历史的主题只是为了添加我自己的输入-因为接受的答案(或答案)并不能真正说明整个故事。

我最终将一个区域用于(以我为例)两个网格:

jx:area(lastCell="B7")

单元格B7是我第二个网格的最后一个单元格。第一格:

jx:grid(lastCell="B4" headers="firstGridHeaders" data="firstGridData" areas=[B3:B3, B4:B4])

第二格:

jx:grid(lastCell="B7" headers="secondGridHeaders" data="secondGridData" areas=[B6:B6, B7:B7])

然后,为了处理模板,我使用了JxlsHelper.getInstance()。processGridTemplate,因为正如@Matthias正确提到的那样,您不能使用processGridTempalteAtCell,因为它总是期望一个网格。