input列表为空时,删除JXLS中的模板行

我使用JXLS来填充excel电子表格的模板。 有时,一个input – 一个列表 – 是空的。 发生这种情况时,使用此列表的模板字段会显示在完整的JXLS ${someList.someValue}的填充电子表格中,例如“ ${someList.someValue} ”。

问题中的字段都在一行中(由JXLS扩展到list.size()行)。 当列表中没有logging时,我想清除整行。

有没有办法在JXLS中这样做? 另外,任何人都可以提出一个补充的方式来使用JExcel或POI来做到这一点?

你可以在你的Excel模板中使用<jx:if>标签。 例如,如果您有一个类似于以下的模板

 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关于标签的更多信息&#x3002;

我认为这是可能的通过POI – 也许甚至POI对象接口的JXLS:

http://poi.apache.org/spreadsheet/how-to.html
修改已读入的文件很简单。 您通过评估者方法检索对象,通过父对象的remove方法(sheet.removeRow(hssfrow))将其删除,并创build对象,就像创build新的xls一样。 当你完成修改单元格时,就像上面那样调用workbook.write(outputstream)。

http://jxls.sourceforge.net/reference/customprocessor.html
使用Row对象,您可以访问相关的POI对象以根据需要修改单元格样式。

另一个原因,行不显示基于jx:if条件是如果jx:if标记之前有一些空间