ang-json2excel-btn
Version:
Angular library component to export JSON data to Excel file
121 lines (114 loc) • 4.86 kB
JavaScript
import * as i0 from '@angular/core';
import { Injectable, Component, Input, NgModule } from '@angular/core';
import * as XLSX from 'xlsx';
import { CommonModule } from '@angular/common';
const EXCEL_EXTENSION = '.xlsx';
class AngJson2excelBtnService {
constructor() {
}
exportToExcel(element, fileName) {
const ws = XLSX.utils.json_to_sheet(element);
// generate workbook and add the worksheet
const workbook = XLSX.utils.book_new();
XLSX.utils.book_append_sheet(workbook, ws, 'Sheet1');
// save to file
XLSX.writeFile(workbook, `${fileName}${EXCEL_EXTENSION}`);
}
}
AngJson2excelBtnService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: AngJson2excelBtnService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
AngJson2excelBtnService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: AngJson2excelBtnService, providedIn: 'root' });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: AngJson2excelBtnService, decorators: [{
type: Injectable,
args: [{
providedIn: 'root'
}]
}], ctorParameters: function () { return []; } });
class AngJson2excelBtn {
// Getters and Setters
get btnText() {
return this._btnText;
}
set btnText(value) {
this._btnText = value;
}
get fileName() {
return this._fileName;
}
set fileName(value) {
this._fileName = value;
}
get json() {
return this._json;
}
set json(value) {
this._json = value;
}
constructor(angJson2excelBtnService) {
this.angJson2excelBtnService = angJson2excelBtnService;
this._btnText = 'Export to Excel';
this._fileName = 'export';
this._json = null;
}
json2ExcelInit() {
if (this._json.length) {
this.angJson2excelBtnService.exportToExcel(this._json, this._fileName);
}
else {
console.error('No data to export');
}
}
ngOnInit() { }
}
AngJson2excelBtn.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: AngJson2excelBtn, deps: [{ token: AngJson2excelBtnService }], target: i0.ɵɵFactoryTarget.Component });
AngJson2excelBtn.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: AngJson2excelBtn, selector: "ang-json2excel-btn", inputs: { btnText: "btnText", fileName: "fileName", json: "json" }, ngImport: i0, template: `
<button
(click)="json2ExcelInit()"
class="ang-json2excel-btn"
>
{{ _btnText }}
</button>
`, isInline: true, styles: [""] });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: AngJson2excelBtn, decorators: [{
type: Component,
args: [{ selector: 'ang-json2excel-btn', template: `
<button
(click)="json2ExcelInit()"
class="ang-json2excel-btn"
>
{{ _btnText }}
</button>
` }]
}], ctorParameters: function () { return [{ type: AngJson2excelBtnService }]; }, propDecorators: { btnText: [{
type: Input
}], fileName: [{
type: Input
}], json: [{
type: Input
}] } });
class AngJson2excelBtnModule {
}
AngJson2excelBtnModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: AngJson2excelBtnModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
AngJson2excelBtnModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.2", ngImport: i0, type: AngJson2excelBtnModule, declarations: [AngJson2excelBtn], imports: [CommonModule], exports: [AngJson2excelBtn] });
AngJson2excelBtnModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: AngJson2excelBtnModule, imports: [CommonModule] });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: AngJson2excelBtnModule, decorators: [{
type: NgModule,
args: [{
declarations: [
AngJson2excelBtn
],
imports: [
CommonModule
],
exports: [
AngJson2excelBtn
]
}]
}] });
/*
* Public API Surface of ang-json2excel-btn
*/
/**
* Generated bundle index. Do not edit.
*/
export { AngJson2excelBtn, AngJson2excelBtnModule, AngJson2excelBtnService };
//# sourceMappingURL=ang-json2excel-btn.mjs.map