Exporting using jasper reports - PDF, Excel, CSV and Doc

in jasper •  7 years ago 

package beans;

import java.util.HashMap;
import java.util.List;

import javax.activation.MimetypesFileTypeMap;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;

import net.sf.jasperreports.engine.JRExporterParameter;
import net.sf.jasperreports.engine.JasperCompileManager;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource;
import net.sf.jasperreports.engine.export.JRCsvExporter;
import net.sf.jasperreports.engine.export.JRPdfExporter;
import net.sf.jasperreports.engine.export.ooxml.JRDocxExporter;
import net.sf.jasperreports.engine.export.ooxml.JRXlsxExporter;

public class ExportData {

public void exportAllFileData(String path,List list,String filetype,String filename,HttpServletResponse response)
{
    System.out.print("File Type report: "+filetype);
    System.out.println("Main Export Method..."+filename);
    System.out.print("File Type report: "+filetype);
    JasperPrint jasperPrint;        
    ServletOutputStream outputStream = null;
    try
    {
        JRBeanCollectionDataSource result=new JRBeanCollectionDataSource(list);
        JasperReport jasperReport = JasperCompileManager.compileReport(path);
        jasperPrint = JasperFillManager.fillReport(jasperReport, new HashMap<String,Object>(), result);
        System.out.print("-------------------- ");
        String mimeType = new MimetypesFileTypeMap().getContentType( filename+".pdf" );
        System.out.println("mimetypee : "+mimeType);
        
        if(filetype.equals("PDF"))
        {
            response.setHeader("Content-Disposition", "attachment;filename"+filename+".pdf");
            response.setContentType("application/octet-stream");
            response.setContentLength(4096);
            outputStream = response.getOutputStream();
            JRPdfExporter exporter = new JRPdfExporter();
            exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
            exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, outputStream);
            exporter.exportReport();
        }
        if(filetype.equals("EXCEL"))
        {
            System.out.print("In Excel report: ");
            response.setHeader("Content-Disposition", "attachment;filename"+filename+".xlsx");
            response.setContentType("application/octet-stream");
            response.setContentLength(4096);
            outputStream = response.getOutputStream();
            JRXlsxExporter exporter = new JRXlsxExporter();
            exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
            exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, outputStream);
            exporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME, filename+".xlsx");
            exporter.exportReport();
        }
        if(filetype.equals("DOC"))
        {
            response.setHeader("Content-Disposition", "attachment;filename"+filename+".docx");
            response.setContentType("application/octet-stream");
            response.setContentLength(4096);
            outputStream = response.getOutputStream();
            JRDocxExporter exporter = new JRDocxExporter();
            exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
            exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, outputStream);
            exporter.exportReport();
        }
        if(filetype.equals("CSV"))
        {
            response.setHeader("Content-Disposition", "attachment;filename"+filename+".csv");
            response.setContentType("application/octet-stream");
            response.setContentLength(4096);
            outputStream = response.getOutputStream();
            JRCsvExporter exporter = new JRCsvExporter();
            exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
            exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, outputStream);
            exporter.exportReport();
        }
        
    }
    catch(Exception e)
    {
        e.printStackTrace();
    }
}

}

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
Sort Order:  

Congratulations @bhuvn! You have completed some achievement on Steemit and have been rewarded with new badge(s) :

Award for the number of upvotes

Click on any badge to view your own Board of Honor on SteemitBoard.
For more information about SteemitBoard, click here

If you no longer want to receive notifications, reply to this comment with the word STOP

By upvoting this notification, you can help all Steemit users. Learn how here!