@universis/common
Version:
Universis - common directives and services
31 lines • 4.97 kB
JavaScript
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