Пользовательский конвертер для JXLS - PullRequest
0 голосов
/ 14 мая 2019

Я использую JXLS для записи отчета (списка компонентов) в файл xlsx, используя JXLS (версия 2.6.0).

private void writeToXlsxFile(List<MyResult> report, String fileName) throws IOException {
    try (InputStream is = new ClassPathResource("template.xlsx").getInputStream()) {
        try (OutputStream os = new FileOutputStream(fileName)) {
            Context context = new Context();
            context.putVar("report", report);
            JxlsHelper.getInstance().processTemplate(is, os, context);
        }
    }
}

MyBean - это плоский POJO с несколькими свойствами LocalDate и Boolean.

Существует ли простой способ написания пользовательских преобразователей и регистрации их в экземпляре JxlsHelper?

Date convertLocalDateToDate (LocalDate date) {
    return Date.from(date.atStartOfDay(ZoneId.systemDefault()).toInstant());
}

String convertBooleanToString (Boolean bool) {
    return bool ? "yes" : "no";
}

Я ищу общее преобразование для всех свойств этого типа в MyBean.

Если не существует простого способа, как мне адаптировать шаблон xlsx для достижения упомянутых преобразований:

  • LocalDate -> Date
  • Boolean -> String
...