datasurvey/src/main/webapp/app/entities/dashboard/export/export_excel.ts

38 lines
1.3 KiB
TypeScript

import * as XLSX from 'xlsx';
import * as FileSaver from 'file-saver';
import { generateFileName } from './export_common';
const EXCEL_TYPE: string = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8';
const EXCEL_EXTENSION: string = '.xlsx';
export const exportAsExcelFile = (sheetNames: string[], arrayOfData: any[], excelFileName: any) => {
const workbook = XLSX.utils.book_new();
arrayOfData.forEach((data, index) => {
let sheetName = sheetNames[index];
let worksheet = XLSX.utils.json_to_sheet(data);
XLSX.utils.book_append_sheet(workbook, worksheet, sheetName);
});
const excelBuffer = XLSX.write(workbook, { bookType: 'xlsx', type: 'array' });
saveAsExcelFile(excelBuffer, excelFileName);
};
const saveAsExcelFile = (buffer: any, fileName: any) => {
const data = new Blob([buffer], { type: EXCEL_EXTENSION });
const generatedFileName = generateFileName(fileName, EXCEL_EXTENSION);
FileSaver.saveAs(data, generatedFileName);
};
export const exportAsExcelTable = () => {
const workbook = XLSX.utils.book_new();
let worksheet = XLSX.utils.json_to_sheet([{ test: 1 }, { test: 2 }]);
XLSX.utils.book_append_sheet(workbook, worksheet, 'test');
const excelBuffer = XLSX.write(workbook, { bookType: 'xlsx', type: 'array' });
saveAsExcelFile(excelBuffer, 'test');
};