gt: 		long start = System.currentTimeMillis();
context: /*
   * JasperReports - Free Java Reporting Library.
   * Copyright (C) 2001 - 2013 Jaspersoft Corporation. All rights reserved.
   * http://www.jaspersoft.com
   *
   * Unless you have purchased a commercial license agreement from Jaspersoft,
   * the following license terms apply:
   *
   * This program is part of JasperReports.
   *
   * JasperReports is free software: you can redistribute it and/or modify
   * it under the terms of the GNU Lesser General Public License as published by
   * the Free Software Foundation, either version 3 of the License, or
   * (at your option) any later version.
   *
   * JasperReports is distributed in the hope that it will be useful,
   * but WITHOUT ANY WARRANTY; without even the implied warranty of
   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
   * GNU Lesser General Public License for more details.
   *
   * You should have received a copy of the GNU Lesser General Public License
   * along with JasperReports. If not, see <http://www.gnu.org/licenses/>.
   */
  import java.io.File;
  import java.io.IOException;
  import java.util.HashMap;
  import java.util.HashSet;
  import java.util.Map;
  import java.util.Set;
  
  import net.sf.jasperreports.engine.JRException;
  import net.sf.jasperreports.engine.JRExporterParameter;
  import net.sf.jasperreports.engine.JasperExportManager;
  import net.sf.jasperreports.engine.JasperFillManager;
  import net.sf.jasperreports.engine.JasperPrint;
  import net.sf.jasperreports.engine.JasperPrintManager;
  import net.sf.jasperreports.engine.data.JRXlsxDataSource;
  import net.sf.jasperreports.engine.export.JExcelApiExporter;
  import net.sf.jasperreports.engine.export.JRCsvExporter;
  import net.sf.jasperreports.engine.export.JRRtfExporter;
  import net.sf.jasperreports.engine.export.JRXhtmlExporter;
  import net.sf.jasperreports.engine.export.JRXlsExporter;
  import net.sf.jasperreports.engine.export.JRXlsExporterParameter;
  import net.sf.jasperreports.engine.export.oasis.JROdsExporter;
  import net.sf.jasperreports.engine.export.oasis.JROdtExporter;
  import net.sf.jasperreports.engine.export.ooxml.JRDocxExporter;
  import net.sf.jasperreports.engine.export.ooxml.JRPptxExporter;
  import net.sf.jasperreports.engine.export.ooxml.JRXlsxExporter;
  import net.sf.jasperreports.engine.util.AbstractSampleApp;
  import net.sf.jasperreports.engine.util.JRLoader;
  
  
  /**
   * @author sanda zaharia (shertage@users.sourceforge.net)
   * @version $Id: XlsxDataSourceApp.java 6311 2013-07-10 11:47:33Z teodord $
   */
  public class XlsxDataSourceApp extends AbstractSampleApp
  {
  	
  
  	/**
  	 *
  	 */
  	public static void main(String[] args)
  	{
  		main(new XlsxDataSourceApp(), args);
  	}
  	
  	
  	/**
  	 *
  	 */
  	public void test() throws JRException
  	{
  		fill();
  		pdf();
  		xmlEmbed();
  		xml();
  		html();
  		rtf();
  		xls();
  		jxl();
  		csv();
  		odt();
  		ods();
  		docx();
  		xlsx();
  		pptx();
  		xhtml();
  	}
  
  
  	/**
  	 *
  	 */
  	public void fill() throws JRException
  	{
  		long start = System.currentTimeMillis();
  		//Preparing parameters
  		Map<String, Object> parameters = new HashMap<String, Object>();
  		parameters.put("ReportTitle", "Address Report");
  		parameters.put("DataFile", "MultisheetXlsxDataSource.data.xlsx - XLSX data source");
  		Set<String> states = new HashSet<String>();
  		states.add("Active");
  		states.add("Trial");
  		parameters.put("IncludedStates", states);
  
  		JasperFillManager.fillReportToFile("build/reports/XlsxDataSourceReport.jasper", parameters, getDataSource());
  		System.err.println("Filling time : " + (System.currentTimeMillis() - start));
  	}
  
  
  	/**
  	 *
  	 */
  	public void print() throws JRException
  	{
  		long start = System.currentTimeMillis();
  		JasperPrintManager.printReport("build/reports/XlsxDataSourceReport.jrprint", true);
  		System.err.println("Printing time : " + (System.currentTimeMillis() - start));
  	}
  
  
  	/**
  	 *
  	 */
  	public void pdf() throws JRException
  	{
  		long start = System.currentTimeMillis();
  		JasperExportManager.exportReportToPdfFile("build/reports/XlsxDataSourceReport.jrprint");
  		System.err.println("PDF creation time : " + (System.currentTimeMillis() - start));
  	}
  
  
  	/**
  	 *
  	 */
  	public void xml() throws JRException
  	{
  		long start = System.currentTimeMillis();
  		JasperExportManager.exportReportToXmlFile("build/reports/XlsxDataSourceReport.jrprint", false);
  		System.err.println("XML creation time : " + (System.currentTimeMillis() - start));
  	}
  
  
  	/**
  	 *
  	 */
  	public void xmlEmbed() throws JRException
  	{
  		long start = System.currentTimeMillis();
  		JasperExportManager.exportReportToXmlFile("build/reports/XlsxDataSourceReport.jrprint", true);
  		System.err.println("XML creation time : " + (System.currentTimeMillis() - start));
  	}
  
  
  	/**
  	 *
  	 */
  	public void html() throws JRException
  	{
  		long start = System.currentTimeMillis();
  		JasperExportManager.exportReportToHtmlFile("build/reports/XlsxDataSourceReport.jrprint");
  		System.err.println("HTML creation time : " + (System.currentTimeMillis() - start));
  	}
  
  
  	/**
  	 *
  	 */
  	public void rtf() throws JRException
  	{
  		long start = System.currentTimeMillis();
  		File sourceFile = new File("build/reports/XlsxDataSourceReport.jrprint");
  
  		JasperPrint jasperPrint = (JasperPrint)JRLoader.loadObject(sourceFile);
  
  		File destFile = new File(sourceFile.getParent(), jasperPrint.getName() + ".rtf");
  		
  		JRRtfExporter exporter = new JRRtfExporter();
  		
  		exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
  		exporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME, destFile.toString());
  		
  		exporter.exportReport();
  
  		System.err.println("RTF creation time : " + (System.currentTimeMillis() - start));
  	}
  
  
  	/**
  	 *
  	 */
  	public void xls() throws JRException
  	{
  		long start = System.currentTimeMillis();
  		File sourceFile = new File("build/reports/XlsxDataSourceReport.jrprint");
  
  		JasperPrint JasperPrint = (JasperPrint)JRLoader.loadObject(sourceFile);
  
  		File destFile = new File(sourceFile.getParent(), JasperPrint.getName() + ".xls");
  		
  		JRXlsExporter exporter = new JRXlsExporter();
  		
  		exporter.setParameter(JRExporterParameter.JASPER_PRINT, JasperPrint);
  		exporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME, destFile.toString());
  		exporter.setParameter(JRXlsExporterParameter.IS_ONE_PAGE_PER_SHEET, Boolean.FALSE);
  		
  		exporter.exportReport();
  
  		System.err.println("XLS creation time : " + (System.currentTimeMillis() - start));
  	}
  
  
  	/**
  	 *
  	 */
  	public void jxl() throws JRException
  	{
  		long start = System.currentTimeMillis();
  		File sourceFile = new File("build/reports/XlsxDataSourceReport.jrprint");
  
  		JasperPrint jasperPrint = (JasperPrint)JRLoader.loadObject(sourceFile);
  
  		File destFile = new File(sourceFile.getParent(), jasperPrint.getName() + ".jxl.xls");
  
  		JExcelApiExporter exporter = new JExcelApiExporter();
  
  		exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
  		exporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME, destFile.toString());
  		exporter.setParameter(JRXlsExporterParameter.IS_ONE_PAGE_PER_SHEET, Boolean.TRUE);
  
  		exporter.exportReport();
  
  		System.err.println("XLS creation time : " + (System.currentTimeMillis() - start));
  	}
  
  
  	/**
  	 *
  	 */
  	public void csv() throws JRException
  	{
  		long start = System.currentTimeMillis();
  		File sourceFile = new File("build/reports/XlsxDataSourceReport.jrprint");
  
  		JasperPrint jasperPrint = (JasperPrint)JRLoader.loadObject(sourceFile);
  
  		File destFile = new File(sourceFile.getParent(), jasperPrint.getName() + ".csv");
  		
  		JRCsvExporter exporter = new JRCsvExporter();
  		
  		exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
  		exporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME, destFile.toString());
  		
  		exporter.exportReport();
  
  		System.err.println("CSV creation time : " + (System.currentTimeMillis() - start));
  	}
  
  
  	/**
  	 *
  	 */
  	public void odt() throws JRException
  	{
  		long start = System.currentTimeMillis();
  		File sourceFile = new File("build/reports/XlsxDataSourceReport.jrprint");
  
  		JasperPrint jasperPrint = (JasperPrint)JRLoader.loadObject(sourceFile);
  
  		File destFile = new File(sourceFile.getParent(), jasperPrint.getName() + ".odt");
  		
  		JROdtExporter exporter = new JROdtExporter();
  		
  		exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
  		exporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME, destFile.toString());
  		
  		exporter.exportReport();
  
  		System.err.println("ODT creation time : " + (System.currentTimeMillis() - start));
  	}
  
  
  	/**
  	 *
  	 */
  	public void ods() throws JRException
  	{
  		long start = System.currentTimeMillis();
  		File sourceFile = new File("build/reports/XlsxDataSourceReport.jrprint");
  
  		JasperPrint jasperPrint = (JasperPrint)JRLoader.loadObject(sourceFile);
  
  		File destFile = new File(sourceFile.getParent(), jasperPrint.getName() + ".ods");
  		
  		JROdsExporter exporter = new JROdsExporter();
  		
  		exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
  		exporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME, destFile.toString());
  		exporter.setParameter(JRXlsExporterParameter.IS_ONE_PAGE_PER_SHEET, Boolean.TRUE);
  		
  		exporter.exportReport();
  
  		System.err.println("ODS creation time : " + (System.currentTimeMillis() - start));
  	}
  
  
  	/**
  	 *
  	 */
  	public void docx() throws JRException
  	{
  		long start = System.currentTimeMillis();
  		File sourceFile = new File("build/reports/XlsxDataSourceReport.jrprint");
  
  		JasperPrint jasperPrint = (JasperPrint)JRLoader.loadObject(sourceFile);
  
  		File destFile = new File(sourceFile.getParent(), jasperPrint.getName() + ".docx");
  		
  		JRDocxExporter exporter = new JRDocxExporter();
  		
  		exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
  		exporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME, destFile.toString());
  		
  		exporter.exportReport();
  
  		System.err.println("DOCX creation time : " + (System.currentTimeMillis() - start));
  	}
  
  
  	/**
  	 *
  	 */
  	public void xlsx() throws JRException
  	{
  		long start = System.currentTimeMillis();
  		File sourceFile = new File("build/reports/XlsxDataSourceReport.jrprint");
  
  		JasperPrint jasperPrint = (JasperPrint)JRLoader.loadObject(sourceFile);
  
  		File destFile = new File(sourceFile.getParent(), jasperPrint.getName() + ".xlsx");
  		
  		JRXlsxExporter exporter = new JRXlsxExporter();
  		
  		exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
  		exporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME, destFile.toString());
  		exporter.setParameter(JRXlsExporterParameter.IS_ONE_PAGE_PER_SHEET, Boolean.FALSE);
  		
  		exporter.exportReport();
  
  		System.err.println("XLSX creation time : " + (System.currentTimeMillis() - start));
  	}
  	
  	
  	/**
  	 *
  	 */
  	public void pptx() throws JRException
  	{
  		long start = System.currentTimeMillis();
  		File sourceFile = new File("build/reports/XlsxDataSourceReport.jrprint");
  
  		JasperPrint jasperPrint = (JasperPrint)JRLoader.loadObject(sourceFile);
  
  		File destFile = new File(sourceFile.getParent(), jasperPrint.getName() + ".pptx");
  		
  		JRPptxExporter exporter = new JRPptxExporter();
  		
  		exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
  		exporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME, destFile.toString());
  
  		exporter.exportReport();
  
  		System.err.println("PPTX creation time : " + (System.currentTimeMillis() - start));
  	}
  	
  	
  	/**
  	 *
  	 */
  	public void xhtml() throws JRException
  	{
  