使用jxls删除列

时间:2013-09-12 11:24:19

标签: java excel jxl jxls

我正在使用JXLS填充模板Excel电子表格。 我有一个配置文件,带有列的列应包含在导出中。 我在这个主页上找到了 http://jxls.sourceforge.net/reference/tags.html 使用jx:if标签的可能性,但如果我这样使用它(使用“<”,“/>”)

              A                               |     B                | C     | D | E 
jx:if test="${columnheader.b != DISABLED}"    | ${columnheader.b}    | jx:if | d | e
                                              |  b                   |       |   |

结果是

               A                               |     B                | C     | D | E 
               d                               |     e                |       |   |
                                               |     b                |       |   |

但我想

               A                      |     B                | C     | D | E 
               d                      |     e                |       |   |
                                      |                      |       |   |

我可以对列中的每个单元格使用if-Tag,然后就可以了。但是我也想使用if-Tags来删除行(比如这个Remove template row in JXLS when input list is empty)然后它不起作用,因为我在列中有一个结束if-Tag。

此外,我找到了方法xlsTransformer.setColumnPropertyNamesToHide(..),但它只隐藏了列并且没有删除它们。

我非常感谢你的帮助。

1 个答案:

答案 0 :(得分:0)

选择你的例子,你可以这样做:

                A                               |     B                | C     | D | E 
1 jx:if test="${line something...}"             |                      |       |   |  
2 jx:if test="${columnheader.b != DISABLED}"    | ${columnheader.b}    | jx:if | d | e
3 jx:if                                         |                      |       |   |  
4 jx:if test="${columnheader.b != DISABLED}"    |     b                | jx:if |   | 

也就是说,为所有列设置了if-tags,对于要检查的行,请在前后行进行。

请注意:

  • 当您为行放置If标记时,放置jx:if标记将始终消失(如果条件为true或false则独立)。在这个例子中,单元格A1,B1,C1,D1,E1和A3,B3,C3,D3,E3将永远消失。

  • 为列放置If标记时,单元格放置jx:if标记将始终消失。在这个例子中,单元格A2,C2和A4,C4将永远消失。