package ro.nextreports.designer.action.report.layout.export; import ro.nextreports.designer.Globals; import ro.nextreports.designer.LayoutHelper; import ro.nextreports.designer.util.I18NSupport; import ro.nextreports.designer.util.ImageUtil; import ro.nextreports.engine.Report; import ro.nextreports.engine.ReportLayout; import ro.nextreports.engine.ReportRunner; import ro.nextreports.engine.exporter.ExporterBean; import ro.nextreports.engine.exporter.ResultExporter; import ro.nextreports.engine.exporter.XlsxExporter; public class ExportToExcelXAction extends ExportAction { public ExportToExcelXAction(Report report) { super(report); exportType = ReportRunner.EXCEL_XLSX_FORMAT; putValue(NAME, I18NSupport.getString("export.excelx.short.desc")); putValue(SMALL_ICON, ImageUtil.getImageIcon("excel_xlsx")); putValue(MNEMONIC_KEY, new Integer('E')); putValue(SHORT_DESCRIPTION, I18NSupport.getString("export.excelx.short.desc")); putValue(LONG_DESCRIPTION, I18NSupport.getString("export.excelx.long.desc")); } @Override protected String getFileExtension() { if (hasMacro()) { return "xlsm"; } else { return "xlsx"; } } @Override protected ResultExporter getResultExporter(ExporterBean bean) { ResultExporter exporter = new XlsxExporter(bean); exporter.setImageChartPath(Globals.USER_DATA_DIR + "/reports"); return exporter; } @Override protected boolean hasMacro() { ReportLayout layout = LayoutHelper.getReportLayout(); if (report != null) { layout = report.getLayout(); } String templateName = layout.getTemplateName(); return (templateName != null) && templateName.endsWith(".xlsm"); } }