Сохранить в Excel из JasperViewer - PullRequest
       6

Сохранить в Excel из JasperViewer

5 голосов
/ 18 января 2011

Я использую JasperViewer, чтобы показать отчет пользователю и иметь возможность экспортировать в pdf, word и Excel. Проблема при сохранении в Excel, и появляется сообщение об ошибке:

Exception in thread "AWT-EventQueue-0" java.lang.VerifyError: (class: net/sf/jasperreports/engine/export/JRXlsExporter, 
method: createMergeRegion signature: (Lnet/sf/jasperreports/engine/export/JRExporterGridCell;IILorg/apache/poi/hssf/usermodel/HSSFCellStyle;)V) Incompatible argument to function
        at net.sf.jasperreports.view.save.JRSingleSheetXlsSaveContributor.save(JRSingleSheetXlsSaveContributor.java:104)
        at net.sf.jasperreports.swing.JRViewerToolbar.btnSaveActionPerformed(JRViewerToolbar.java:407)

Вот код, который я использую, чтобы показать свой отчет:

  public void showReport() throws SQLException {


        RNVehicle rnVehicle = new RNVehicle();
        vehicles.clear();
        vehicles= rnVehicle.getVehiculos();

        //Path to your .jasper file in your package
        String reportName = "reports/ReportVehicles.jasper";

        //Get a stream to read the file
        InputStream is = this.getClass().getClassLoader().getResourceAsStream(reportName);

        try {

            JasperPrint jp = JasperFillManager.fillReport(is, null, new JRBeanCollectionDataSource(vehicles));

            //Viewer for JasperReport
            JRViewer jv = new JRViewer(jp);

            //Insert viewer to a JFrame to make it showable
            JFrame jf = new JFrame();
            jf.getContentPane().add(jv);
            jf.validate();
            jf.setVisible(true);
            jf.setSize(new Dimension(1020, 755));
            jf.setLocation(0, 0);
            jf.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);
        } catch (JRException ex) {
            ex.printStackTrace();
        }
    }

Я в отчаянии :(, почему не работает? Какие изменения я должен сделать? Или какие библиотеки я должен импортировать в проект, чтобы он запустился?

На данный момент у меня есть: poi-3.6.jar (тот, который поставляется с дистрибутивом JR), я также пытался с предыдущими версиями 3.5 и 3.2, и со всеми из них все работает нормально, но только для HTML, PDF и Word , не для Excel.

Любое понимание этого вопроса будет полезно.

Ответы [ 4 ]

1 голос
/ 29 августа 2012

Если вы можете получить его в CSV и открыть в блокноте ++ или в чем-то подобном, найдите и замените ,, (две запятые в строке) и замените его чем-то вроде тире в качестве заполнителя. Это испортило меня раньше. после этого вы можете вывести его в массив на выбранном вами языке и манипулировать им оттуда.

1 голос
/ 22 июня 2015

Вам необходимо добавить «poi-3.10.1.jar» в ваш проект.

0 голосов
/ 29 июля 2016

Как сказал Адель, хорошо работает с конкретной версией "poi-3.10.1.jar".

    <dependency>
        <groupId>org.apache.poi</groupId>
        <artifactId>poi</artifactId>
        <version>3.10.1</version>                        
    </dependency>
0 голосов
/ 17 февраля 2011

для экспорта в Excel необходима библиотека jxl.Обычно JasperReports хочет собирать общие ресурсы, использовать обычные beanutils и общие ресурсы

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...