package gw.exportimport uses java.util.concurrent.Callable uses gw.api.extension.ExtensionInterfaces /** * An {@link AbstractAsynchronousRowExecutor} responsible for wrapping an {@link ExcelExporter}. */ @ReadOnly class AsynchronousExcelExporter extends AbstractAsynchronousRowExecutor { var _data : ExportData< KeyableBean > var _template : boolean var _rowsExported : int as Row function initialize(data : ExportData< KeyableBean >, template : boolean) { super.initialize() _data = data _template = template } function streamExcelFile() { ExtensionInterfaces.IExcelFileWriterExtensions.saveExcelFile(Result, _data, _template) } override function createCallable() : Callable { return new ExportCallable() } private class ExportCallable implements Callable { override function call() : byte[] { var exporter = ExtensionInterfaces.IExcelExporterFactory.newInstance(_data, outer) return exporter.exportWorkbookInMemory(_template) } } }