Генерируем xlsx файл, и отправляем его на почту с помощью cordova-plugin-email-composer без промежуточного сохранения в файловою систему устройства. Проверялось под IOS.
/** * @class Overrides.exporter.File * @author Dmitry Kazarin <dikazarin@gmail.com> * * Отправляет сгенерированный xlsx на почту * Использует функционал cordova-plugin-email-composer * **/ Ext.define('Overrides.exporter.File', { override: 'Ext.exporter.File', requiresPopup: function () { // Мы не показываем popup (новое окно) для скачивания файла // Мы всегда используем blob return false; }, }, function (File) { File.saveBlobAs = Ext.Function.createInterceptor(File.saveBlobAs, function (textContent, fileName, charset, mimeType) { // Если мы запускаемся под cordova if (!!window.cordova) { cordova.plugins.email.hasAccount( function (isAvailable) { if (isAvailable) { let uint8 = new Uint8Array(textContent.length), len = uint8.length, i; for (i = 0; i < len; i++) { uint8[i] = textContent.charCodeAt(i); } cordova.plugins.email.open({ subject: fileName.slice(0, -5), attachments: [ `base64:${fileName}//${btoa(String.fromCharCode.apply(null, uint8))}` ] }); } else { Ext.toast('No configured mail client'); } } ); return false; } else { // Пошли в оригинальную функцию return true; } }); });