UNPKG

@universis/common

Version:

Universis - common directives and services

31 lines 4.97 kB
import { Injectable } from '@angular/core'; import * as FileSaver from 'file-saver'; import * as XLSX from 'xlsx'; import * as i0 from "@angular/core"; const EXCEL_TYPE = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8'; export class ExportSpreadsheetService { saveAs(buffer, file) { const data = new Blob([buffer], { type: EXCEL_TYPE }); FileSaver.saveAs(data, file); } export(data, file, options) { const worksheet = XLSX.utils.json_to_sheet(data, { skipHeader: !!(options && options.skipHeader) }); if (options?.header && !options.skipHeader) { options.header.forEach((header, index) => { const cell = worksheet[XLSX.utils.encode_col(index) + '1']; cell.v = header; }); } const workbook = { Sheets: { 'data': worksheet }, SheetNames: ['data'] }; const excelBuffer = XLSX.write(workbook, { bookType: 'xlsx', type: 'array' }); this.saveAs(excelBuffer, file); } } ExportSpreadsheetService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ExportSpreadsheetService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); ExportSpreadsheetService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ExportSpreadsheetService }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ExportSpreadsheetService, decorators: [{ type: Injectable }] }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwb3J0LXNwcmVhZHNoZWV0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvc2hhcmVkL3NlcnZpY2VzL2V4cG9ydC1zcHJlYWRzaGVldC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxLQUFLLFNBQVMsTUFBTSxZQUFZLENBQUM7QUFDeEMsT0FBTyxLQUFLLElBQUksTUFBTSxNQUFNLENBQUM7O0FBQzdCLE1BQU0sVUFBVSxHQUFHLGlGQUFpRixDQUFDO0FBR25HLE1BQU0sT0FBTyx3QkFBd0I7SUFFM0IsTUFBTSxDQUFDLE1BQVcsRUFBRSxJQUFZO1FBQ3BDLE1BQU0sSUFBSSxHQUFTLElBQUksSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBQyxJQUFJLEVBQUUsVUFBVSxFQUFDLENBQUMsQ0FBQztRQUMxRCxTQUFTLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQsTUFBTSxDQUFDLElBQVcsRUFBRSxJQUFZLEVBQUUsT0FHbkM7UUFDSyxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUU7WUFDL0MsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sSUFBSSxPQUFPLENBQUMsVUFBVSxDQUFDO1NBQzlDLENBQUMsQ0FBQztRQUNILElBQUksT0FBTyxFQUFFLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUU7WUFDMUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLEVBQUU7Z0JBQ3ZDLE1BQU0sSUFBSSxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQztnQkFDM0QsSUFBSSxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUM7WUFDbEIsQ0FBQyxDQUFDLENBQUM7U0FDSjtRQUNELE1BQU0sUUFBUSxHQUFrQixFQUFFLE1BQU0sRUFBRSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsRUFBRSxVQUFVLEVBQUUsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1FBQ3hGLE1BQU0sV0FBVyxHQUFRLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUNuRixJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNuQyxDQUFDOztzSEF2QlUsd0JBQXdCOzBIQUF4Qix3QkFBd0I7NEZBQXhCLHdCQUF3QjtrQkFEdEMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCAqIGFzIEZpbGVTYXZlciBmcm9tICdmaWxlLXNhdmVyJztcbmltcG9ydCAqIGFzIFhMU1ggZnJvbSAneGxzeCc7XG5jb25zdCBFWENFTF9UWVBFID0gJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnNoZWV0O2NoYXJzZXQ9VVRGLTgnO1xuXG5ASW5qZWN0YWJsZSgpXG4gIGV4cG9ydCBjbGFzcyBFeHBvcnRTcHJlYWRzaGVldFNlcnZpY2Uge1xuXG4gICAgcHJpdmF0ZSBzYXZlQXMoYnVmZmVyOiBhbnksIGZpbGU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBjb25zdCBkYXRhOiBCbG9iID0gbmV3IEJsb2IoW2J1ZmZlcl0sIHt0eXBlOiBFWENFTF9UWVBFfSk7XG4gICAgICAgIEZpbGVTYXZlci5zYXZlQXMoZGF0YSwgZmlsZSk7XG4gICAgfVxuXG4gICAgZXhwb3J0KGRhdGE6IGFueVtdLCBmaWxlOiBzdHJpbmcsIG9wdGlvbnM/OiB7XG4gICAgICBoZWFkZXI/OiBzdHJpbmdbXTtcbiAgICAgIHNraXBIZWFkZXI/OiBib29sZWFuO1xuICB9KSB7XG4gICAgICAgIGNvbnN0IHdvcmtzaGVldCA9IFhMU1gudXRpbHMuanNvbl90b19zaGVldChkYXRhLCB7XG4gICAgICAgICAgc2tpcEhlYWRlcjogISEob3B0aW9ucyAmJiBvcHRpb25zLnNraXBIZWFkZXIpXG4gICAgICAgIH0pO1xuICAgICAgICBpZiAob3B0aW9ucz8uaGVhZGVyICYmICFvcHRpb25zLnNraXBIZWFkZXIpIHtcbiAgICAgICAgICBvcHRpb25zLmhlYWRlci5mb3JFYWNoKChoZWFkZXIsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBjZWxsID0gd29ya3NoZWV0W1hMU1gudXRpbHMuZW5jb2RlX2NvbChpbmRleCkgKyAnMSddO1xuICAgICAgICAgICAgY2VsbC52ID0gaGVhZGVyO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHdvcmtib29rOiBYTFNYLldvcmtCb29rID0geyBTaGVldHM6IHsgJ2RhdGEnOiB3b3Jrc2hlZXQgfSwgU2hlZXROYW1lczogWydkYXRhJ10gfTtcbiAgICAgICAgY29uc3QgZXhjZWxCdWZmZXI6IGFueSA9IFhMU1gud3JpdGUod29ya2Jvb2ssIHsgYm9va1R5cGU6ICd4bHN4JywgdHlwZTogJ2FycmF5JyB9KTtcbiAgICAgICAgdGhpcy5zYXZlQXMoZXhjZWxCdWZmZXIsIGZpbGUpO1xuICAgIH1cbiAgfVxuIl19