Simple Export to Excel Service that allows to exporting as .xls
or .xlsx
.
This package requires excel-builder-vanilla which itself also has a single dependency fflate to compress the data before sending it to the browser.
Follow the instruction provided in the main README, you can see a demo by looking at the GitHub Demo page and click on "Export to Excel" from the Context Menu or the Grid Menu (aka hamburger menu).
You can also use nearly all Excel-Builder-Vanilla options, see their Excel-Builder-Vanilla - Documentation and also take a look at Slickgrid-Universal Excel Export - Documentation on how to use both.
In order to use the Service, you will need to register it in your grid options via the registerExternalResources
as shown below.
import { ExcelExportService } from '@slickgrid-universal/excel-export';
export class MyExample {
initializeGrid {
this.gridOptions = {
enableExcelExport: true,
excelExportOptions: {
sanitizeDataExport: true
},
externalResources: [new ExcelExportService()],
}
}
}
If you wish to reference the service to use it with external export button, then simply create a reference while instantiating it.
import { ExcelExportService } from '@slickgrid-universal/excel-export';
export class MyExample {
excelExportService: ExcelExportService;
constructor() {
this.excelExportService = new ExcelExportService();
}
initializeGrid {
this.gridOptions = {
enableExcelExport: true,
excelExportOptions: {
sanitizeDataExport: true
},
externalResources: [this.excelExportService],
}
}
exportToExcel() {
this.excelExportService.exportToExcel({ filename: 'export', format: FileType.xlsx });
}
}
Please note that this Excel Export service is using fflate
(it compresses the data before sending it to the browser) and for better performance it uses Web Workers and for that reason you might need to adjust your CSP rules. You simply need to add a CSP rule to avoid the error worker-src 'self' blob:;
<meta http-equiv="Content-Security-Policy"
content="default-src 'self'; ...other rules... worker-src 'self' blob:;" />