Экспорт в формат Excel: тип ячейки «общий» и число превращаются в научную нотацию - PullRequest
0 голосов
/ 07 мая 2018

Я создал Jrxml для генерации вывода в Excel. Текстовое поле типа данных «Строка» в iReport отображается с форматом ячейки как «Общий» в сгенерированном выводе Excel.

Когда число больше 12, оно превращается в научное обозначение. например, 999999999869 превращается в 1E+12. Мне нужно, чтобы формат ячейки был «текст» или «число».

Я пытался с собственностью

<property name="net.sf.jasperreports.export.xls.detect.cell.type" value="true"/>

Но это не работает.
Также пробовал с pattern="@" и pattern="0.00", но ни один из них не работает.

Используемая версия JasperReports 5.6.1 и org.grails.plugins: jasper 1.11.0

1 Ответ

0 голосов
/ 07 мая 2018

В большинстве случаев добавление следующего свойства в отчет jrxml позволяет excel определять тип ячейки:

<property name="net.sf.jasperreports.export.xls.detect.cell.type" value="true"/>

Но похоже, что вы уже пробовали это.В этом случае у вас останется несколько грязных решений, которые вы можете попробовать.Видите ли, формат чисел по умолчанию в Excel является общим, поэтому в ячейке можно отобразить только до 11 цифр, и эта проблема относится к Microsoft Office Excel 2010, Excel 2007 и Excel 2003. Получение более поздней версии Microsoft Excel делает эту проблему недействительной илипопробуйте экспортировать в формате XLSX.Кроме того, вы можете использовать другие программы чтения Excel, такие как Open Office.

Когда вы экспортируете в Excel, вы теряете контроль над форматированием ячейки, но в качестве обходного пути попробуйте добавить префикс символа для принудительного перевода типа ячейки в текст, попробуйте добавить одинкавычка (') перед номером textField, например <![CDATA["'" + $F{LongNumber}]]>, или попробуйте вставить пробел (ы) между числами.Это все еще немного глупо, но может работать на вас.

В противном случае последнее возможное исправление - получить доступ к Excel из кода Java, который запускает отчет.Вы можете получить доступ к элементам ROW, COLUMN & CELL через poi jar.

...