我正在使用JXLS填充模板Excel电子表格。有时,一个输入 - 列表 - 是空的。发生这种情况时,使用此列表的模板字段将显示在完整JXLS regalia的填充电子表格中 - 例如,“${someList.someValue}
”。
有问题的字段都在一行中(由JXLS扩展为list.size()
行)。当列表中没有记录时,我想清除整行。
有没有办法在JXLS中这样做?或者,任何人都可以建议使用JExcel或POI这样做的补充方式吗?
答案 0 :(得分:2)
您可以使用< jx:if>您的Excel模板中的标签。 例如,如果您有类似于以下
的模板Row 1: <jx:if test="${!empty someData}">
Row 2: place holders for data that will be printed in the loop
Row 3: </jx:if>
如果someData不为空,则输出中将打印行,但如果someData为空,则此模板不会打印任何行。
我希望我能说清楚。有关标记的详细信息,请参阅http://jxls.sourceforge.net/reference/tags.html。
答案 1 :(得分:1)
我认为这可以通过POI实现 - 甚至可能是JXLS的POI对象界面:
来自http://poi.apache.org/spreadsheet/how-to.html:
修改您已读入的文件很简单。您可以通过评估器方法检索对象,通过父对象的remove方法(sheet.removeRow(hssfrow))将其删除,并像创建新的xls一样创建对象。完成修改单元格后,只需像上面一样调用workbook.write(outputstream)。
来自http://jxls.sourceforge.net/reference/customprocessor.html:
使用Row对象,您可以访问相关的POI对象,以便在需要时修改单元格样式。
答案 2 :(得分:1)
基于jx不显示行的另一个原因:if条件是在jx之前是否有空格:if标记