angular6 - ExcelJS 在 Angular 6 中无法用于生产

标签 angular6 production-environment filesaver.js exceljs

ExcelJS 导出在 Angular 6 生产环境中不起作用,但在开发环境中运行良好。

我正在使用“exceljs”:“^1.13.0”和“文件保护程序”:“^2.0.2”。到目前为止,我已经尝试更新:

angular.json scripts with "node_modules/exceljs/dist/exceljs.min.js",

tsconfig.json with "paths": {"exceljs": ["node_modules/exceljs/dist/exceljs.min"].

此外,我尝试了两种不同的导入集:
import * as Excel from 'exceljs/dist/exceljs.min.js';
import * as FileSaver from 'file-saver';


import * as Excel from "exceljs/dist/exceljs.min.js";
import * as ExcelProper from "exceljs";
import * as FileSaver from 'file-saver';

我也尝试添加:
declare const ExcelJS: any;

这里是excel服务。
import { Injectable } from '@angular/core';
import * as Excel from "exceljs/dist/exceljs.min.js";
import * as ExcelProper from "exceljs";
import * as FileSaver from 'file-saver';

const EXCEL_TYPE = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8';
const EXCEL_EXTENSION = '.xlsx';

// declare const ExcelJS: any;

@Injectable({
  providedIn: 'root'
})
export class ExcelService {

    workbook: Excel.Workbook;
  worksheet: any;

  constructor() { }


  generateExcel() {

    // Create workbook and worksheet
    this.workbook = new Excel.Workbook();

    // Add a Worksheet
    this.worksheet = this.workbook.addWorksheet('File');


    //Add Test to cell A1
    this.worksheet.getCell('A1').value = 'TEST';

    // Generate Excel File
    this.workbook.xlsx.writeBuffer().then((data) => {
        console.log('buffer data', data);
        const blob = new Blob([data], {type: EXCEL_TYPE});
        console.log('blob', blob);
      FileSaver.saveAs(blob, 'quote.xlsx');
    });

  }

//类(class)结束
}

我的异常(exception)是电子表格在我的 Excel 服务中的方法完成后在浏览器中下载,这是在开发环境中完成的。

最佳答案

  • 像下面这样导入,观察到你已经创建了 Excel 而不是 ExcelJS
  • import * as ExcelJS from "exceljs/dist/exceljs.min.js";
  • 保留此代码 declare const ExcelJS: any;照原样
  • 保留 "node_modules/exceljs/dist/exceljs.min.js"在 angular.json 文件的脚本路径中
  • 删除 Excel 正确导入 - 不需要
  • 无论您在何处创建 WorkBook,都使用 ExcelJS.Workbook() 而不是 Excel.Workbook()
  • 关于angular6 - ExcelJS 在 Angular 6 中无法用于生产,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56996774/

    相关文章:

    google-analytics - 根据开发环境分离 Google Analytics 数据

    html5-canvas - 如何使用 blob 和文件保护程序将 Chart JS 图表保存为没有黑色背景的图像?

    angular6 - 如何在特定列的角度 Material 数据表中进行过滤

    angular - 升级到 Angular 6 后,应用程序显示空白屏幕

    java - 如何临时创建一个没有任何文件位置的文本文件并在运行时在 Spring Boot 中作为响应发送?

    javascript - 如何更改 javascript [客户端] 中不同阶段的端点?

    javascript - FileSaver 下载损坏的 ZIP 文件

    javascript - 将表格导出为 excel,将列导出为文本格式

    javascript - 多级单选按钮

    javascript - Angular6 map 不存在