JasperReports вывести в Excel числа как числа

444
06 января 2017, 09:38

Привет! Есть SpringMVC проект, есть данные, которые по клику на кнопку выкачиваются в Excel файл.

Данные могут быть как число, так и текст, поэтому предыдущий программист сохранял все данные как текст. Но в итоге в Excel файле ячейки с числами имеют зеленый треугольничек с подсказкой "Число в этой ячейке отформатировано как текст, или перед ним стоит апостроф."

Данные для вывода заполняются так:

for (Integer i = startDayOfMonth; i <= endDayOfMonth; i++) {
            titleText = new JRDesignTextField();
            titleText.setX(x);
            titleText.setY(y);
            titleText.setWidth(dayColumnWidth);
            titleText.setHeight(25);
            titleText.setStyle(orangeCellStyle);
            expression = new JRDesignExpression();
            expression.setText(i.toString());
            titleText.setExpression(expression);
            band.addElement(titleText);
            x += titleText.getWidth();
            maxDayList.add(i);
        }

Что нужно сделать, чтобы числа выводились как числа, или чтобы не появлялся этот зеленый треуголльник?

Answer 1

Нашел решение:

В коде

JasperDesign jasperDesign = createListFactDesign();
    JasperReport jasperReport = JasperCompileManager.compileReport(jasperDesign);
    JRDataSource jrDataSource = prepareDataSource();
    Map<String, Object> params = new HashMap<String, Object>();
    JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, params, jrDataSource);
    try (ByteArrayOutputStream baos = new ByteArrayOutputStream()) {
        switch (this.listFactReportParameters.getReportFormat()) {
            case EXCEL:
                JRXlsExporter xlsExporter = new JRXlsExporter();
                xlsExporter.setExporterInput(new SimpleExporterInput(jasperPrint));
                xlsExporter.setExporterOutput(new SimpleOutputStreamExporterOutput(baos));
                SimpleXlsReportConfiguration configuration = new SimpleXlsReportConfiguration();
                configuration.setOnePagePerSheet(false);
                configuration.setDetectCellType(true);                   
                xlsExporter.setConfiguration(configuration);
                xlsExporter.exportReport();

Добавил эту строку configuration.setDetectCellType(true);

READ ALSO
RuntimeException: Unable to get provider com.google.firebase.provider.FirebaseInitProvider (Android 4.4)

RuntimeException: Unable to get provider com.google.firebase.provider.FirebaseInitProvider (Android 4.4)

Ошибку гуглил,все варианты испробовалНа устройствах 5/5

1366
Как нарисовать текст нa Canvas по высоте View

Как нарисовать текст нa Canvas по высоте View

Есть view в которой я на канвасе хочу написать текст

372
Помогите распарсить `VkApiAudio` в виде `json`

Помогите распарсить `VkApiAudio` в виде `json`

Помогите распарсить VkApiAudio в виде json

338
App is not indexable by Google Search в Манифесте

App is not indexable by Google Search в Манифесте

Погуглив нашел решение на ошибку в манифесте:

629