Удалить строку шаблона в JXLS, когда список ввода пуст - PullRequest
3 голосов
/ 30 июля 2011

Я использую JXLS, чтобы заполнить электронную таблицу шаблонов Excel.Иногда один вход - список - пуст.Когда это происходит, поля шаблона, которые используют этот список, отображаются в заполненной электронной таблице в полном формате JXLS - например, "${someList.someValue}".

Все поля, о которых идет речь, находятся в одной строке (расширен до list.size() строки по JXLS).Я хочу очистить всю строку, когда в списке нет записей.

Есть ли способ сделать это в JXLS?Кроме того, кто-нибудь может предложить дополнительный способ использования JExcel или POI для этого?

Ответы [ 3 ]

2 голосов
/ 01 августа 2011

Вы можете использоватьтеги в вашем шаблоне 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 голос
/ 09 апреля 2013

Другая причина, по которой строки не отображаются в зависимости от условия jx: if, если перед тегом jx: if есть место

1 голос
/ 01 августа 2011

Я думаю, что это возможно через POI - возможно, даже объектный интерфейс POI JXLS:

From http://poi.apache.org/spreadsheet/how-to.html:
Изменить файл, который вы прочитали, очень просто.Вы извлекаете объект с помощью метода оценщика, удаляете его с помощью метода удаления родительского объекта (sheet.removeRow (hssfrow)) и создаете объекты так же, как при создании нового xls.Когда вы закончите изменение ячеек, просто вызовите workbook.write (outputtream), как вы это делали выше.

С http://jxls.sourceforge.net/reference/customprocessor.html:
С объектом Row у вас есть доступ к связанным объектам POI дляпри необходимости измените стиль ячейки.

...