Angular 5 и Excel JS


Я работал над модулем, чтобы сохранить объект Angular 5/TypeScript в файл Excel.
Я пытался и по этим ссылкам:

И создал этот код:

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

0 ответов

Другие вопросы по тегам