2011-12-30 2 views
2

Я сделал отчет Excel, который содержит некоторые Double тип TextFields с форматом номер шаблона ##0.#Возникли проблемы формат десятичной точки в Excel с JasperReport

В OpenOffice, эти клетки отформатированы правильно (что именно то, что мне нужно)

  • 1.56 -> 1.6
  • 0.0 -> 0

Однако, когда я открытый отчет с Microsoft Excel, десятичная точка не исчезла, как я пробовал.

  • 1,56 -> 1,6
  • 0,0 ->0.

После некоторых поисков я нашел сообщение о числовом формате в Excel.

In Excel format number with optional decimal places

Я попытался [=0]0;.# вместо этого как пост предложил. Но Excel жалуется, что мой формат номера ячейки сломан.

Мой вопрос: какой шаблон следует использовать в JasperReport, поэтому Excel не будет показывать конечную десятичную точку?

UPDATE: Я просто выяснить, шаблон, описанный в ссылке доза не решает всех случаев, это соответствует только 0, а не 1,0, 2,0 ... и т.д.

+0

Вы нашли правильный формат в Excel? –

+0

Нет, я даже не могу сделать формат номера, который я хочу в Excel, кажется, что доза Excel не поддерживает такой формат? –

+0

Какой Excel (версия) вы используете? –

ответ

1

Вы можете попробовать использовать net.sf.jasperreports.export.xls.formula Недвижимость.

Образец:

<textField pattern="##0.#"> 
    <reportElement x="0" y="0" width="100" height="20"> 
     <property name="net.sf.jasperreports.export.xls.formula" value="[=0]0;##0,#"/> 
    </reportElement> 
    <textElement/> 
    <textFieldExpression><![CDATA[$F{sum}]]></textFieldExpression> 
</textField> 

В моем случае запятая (,) является разделителем в моей ОС.

Информация о net.sf.jasperreports.export.xls.formula недвижимость вы можете найти here.

+0

Благодарим за информацию. Тем не менее, я просто заметил шаблон '[= 0] 0; ## 0. #', описанный в моей дозе ссылки, не решает всех случаев, он соответствует только 0, а не 1.0, 2.0 ... и т. Д. –

1

Как временное решение вы можете вставить в поле этого код:

new DecimalFormat("0.##").format($F{bigdecValue}) 

Таким образом, обработка для XLS будет без запятой, если Thera является trailinig нулей.

Смежные вопросы