Angular 5 и Excel JS
Я работал над модулем, чтобы сохранить объект Angular 5/TypeScript в файл Excel.
Я пытался и по этим ссылкам:
- https://www.codeproject.com/Tips/1251189/Excel-Export-from-Angular-2plus
- https://www.npmjs.com/package/exceljs
И создал этот код:
import * as Excel from 'exceljs/dist/exceljs.min.js';
import { Workbook ,Worksheet, Row } from 'exceljs';
import * as FileSaver from 'file-saver';
export class ExcelJSDemo {
public saveDataToExcel(persons: Person[], sheetName: string, excelFileName: string) {
var workBook: Workbook = new Excel.Workbook();
var workSheet: Worksheet = workBook.addWorksheet(sheetName);
var jsonExcelRow: any;
var counter: number = 0;
persons.forEach(person => {
jsonExcelRow = {};
jsonExcelRow["Row No"] = counter++;
jsonExcelRow["Peson Name"] = person.name;
jsonExcelRow["Age"] = person.name;
jsonExcelRow["Address"] = person.name;
workSheet.addRow(jsonExcelRow);
});
workbook.xlsx.writeBuffer().then(data => {
const blob = new Blob([data], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8' });
FileSaver.saveAs(blob, excelFileName);
});
}
}
export class Person {
name: string;
age: number;
address: string;
}
Но, к сожалению, я всегда получаю файл Excel с чистым листом.
Я также попытался сохранить его так:
workBook.xlsx.writeFile("/temp/testexceljs.xlsx")
.then((result) => {
console.log("testexceljs.xlsx was downloaded by the user!");
console.log(result);
})
.catch((error) => {
console.error("downloading testexceljs.xlsx has error!");
console.log(error);
});
Но он ничего не делает и не сохранит файл.
Это было довольно утомительно и становилось все более неприятным.
Я был бы очень признателен, если бы вы могли предоставить некоторые другие способы или примеры решения этой проблемы.
Спасибо,
Artanis