Выгрузка отчета в csv

Добрый день.

Выгружаю отчет в формате .csv При открытии файла данные отображаются некорректно. Подскажите пожалуйста, есть ли возможность как то это подправить?
Изначально в шаблоне задавал кодировку UTF-8.

Как отображается в файле:

Отображение

Помимо этого, неккоректно отображается дата. Должна отображаться в другом формате

Может вы его некорректно импортируете в Excel, попробуйте открыть файл в Notepad.

В notePade все корректно отображается, только у меня csv сразу открылся в excel

Excel подефолту открывает csv, ожидая, что файл в кодировке win-1251.
Если открыть Excel, создать пустой лист и сделать импорт из файла csv - мастер импорта спросит про то, в какой кодировке исходный файл.

И дополнение к отчету, кто нибудь может подсказать в чем разница?

Формирование дат:

result.put(‘workStartDate’, formatterOut.format(ts.getWorkEndDate().toString())) //Дата начала работ
result.put(‘workEndDate’, ts.getWorkEndDate()) //Дата окончания работ

getWorkEndDate() и getWorkEndDate() возвращают тип данных Date.

При первом вариента я получаю ошибку, во втором нет.

Трейс:
com.haulmont.reports.exception.ReportingException: An error occurred while loading data for band [taskLine] and query [data]. Report name [Отчетность по заявкам с датой (CSV)]
An error occurred while loading data for data set [data]
Cannot format given Object as a Date
at com.haulmont.reports.ReportingBean.createReportDocumentInternal(ReportingBean.java:407)
at com.haulmont.reports.ReportingBean.createReportDocument(ReportingBean.java:330)
at com.haulmont.reports.ReportingBean.createReport(ReportingBean.java:228)
at com.haulmont.reports.ReportServiceBean.createReport(ReportServiceBean.java:56)
at sun.reflect.GeneratedMethodAccessor1715.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:344)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:198)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:88)
at com.haulmont.cuba.core.sys.ServiceInterceptor.aroundInvoke(ServiceInterceptor.java:90)
at sun.reflect.GeneratedMethodAccessor179.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:644)
at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:633)
at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:70)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)
at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:95)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:212)
at com.sun.proxy.$Proxy173.createReport(Unknown Source)
at sun.reflect.GeneratedMethodAccessor1714.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.haulmont.cuba.core.sys.remoting.LocalServiceInvokerImpl.invoke(LocalServiceInvokerImpl.java:94)
at com.haulmont.cuba.web.sys.remoting.LocalServiceProxy$LocalServiceInvocationHandler.invoke(LocalServiceProxy.java:159)
at com.sun.proxy.$Proxy340.createReport(Unknown Source)
at com.haulmont.reports.gui.ReportGuiManager.getReportResult(ReportGuiManager.java:288)
at com.haulmont.reports.gui.ReportGuiManager$1.run(ReportGuiManager.java:413)
at com.haulmont.reports.gui.ReportGuiManager$1.run(ReportGuiManager.java:408)
at com.haulmont.cuba.gui.backgroundwork.LocalizedTaskWrapper.run(LocalizedTaskWrapper.java:57)
at com.haulmont.cuba.web.gui.executors.impl.WebBackgroundWorker$WebTaskExecutor.call(WebBackgroundWorker.java:219)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at com.haulmont.cuba.web.gui.executors.impl.WebBackgroundWorker$WebTaskExecutor.lambda$startExecution$1(WebBackgroundWorker.java:390)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)

Во втором случае у вас просто “Дата”, а в первом какая-то строка, которую отчет не может преобразовать в дату.
Думаю, Кубинцы смогут дать вам более подробное пояснение какой формат даты возможен для отчёта и стоит ли вообще использовать toString().