簡體   English   中英

當輸入列表為空時,刪除JXLS中的模板行

[英]Remove template row in JXLS when input list is empty

我正在使用JXLS填充模板excel電子表格。 有時,一個輸入 - 列表 - 是空的。 發生這種情況時,使用此列表的模板字段將顯示在完整JXLS ${someList.someValue}的填充電子表格中 - 例如,“ ${someList.someValue} ”。

有問題的字段都在一行中(由JXLS擴展為list.size()行)。 當列表中沒有記錄時,我想清除整行。

有沒有辦法在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

行不顯示的另一個原因是基於jx:if條件是在jx:if標記之前是否有一些空格

我認為這可以通過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對象,以根據需要修改單元格樣式。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM