使用 JXLS 将两个动态网格并排放置

Putting two dynamic grids beside each other with 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,并将一些静态文本(首先)放入网格区域右侧的单元格中,但它只是被覆盖了。我本来以为它会移到右边。

您可以在右侧或底部设置任意数量的网格。 但是你应该转换包含它们的父区域。

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

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

恢复这 5 个 year-old 线程只是为了添加我自己的意见 - 因为已接受的答案(或对它的答案)并不能真正说明全部情况。

我最终将一个区域用于(在我的例子中)两个网格:

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,因为它总是需要一个网格。