首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >升级到Angular 10打破了ExcelJs

升级到Angular 10打破了ExcelJs
EN

Stack Overflow用户
提问于 2020-07-01 18:00:37
回答 1查看 1.7K关注 0票数 1

我刚刚使用ng update将我的应用程序从最新版本9升级到angular 10。我知道有一些重大的变化,而且在很大程度上它升级得很好,但是我现在从exceljs得到了一个错误:

代码语言:javascript
复制
"export 'Workbook' (imported as 'Excel') was not found in 'exceljs/dist/exceljs'

在升级之前,它使用的是exceljs版本2.0.1。现在它使用的是exceljs 4.0.1。(它是最新版本之前的一个版本,因为由于选项参数被标记为必需,导致无法在最新版本中编译。这应该无关紧要。)

import语句如下:

代码语言:javascript
复制
import * as Excel from "exceljs/dist/exceljs";

代码本身对于exceljs来说非常典型。我有一个提供数据的服务: HttpResponse,我将它加载到工作簿中,这样我就可以提取一些列。

代码语言:javascript
复制
this.myService.getMySpreadsheet().subscribe((data: HttpResponse<Blob>) => {
      new Response(data.body).arrayBuffer().then(arrayBuffer => {
        const wb: Excel.Workbook = new Excel.Workbook();
        wb.xlsx.load(arrayBuffer).then(() => {

          const ws1 = wb.getWorksheet("My Worksheet");

但它现在甚至无法访问该代码,因为角度编译已被破坏。

你知道我该怎么解决这个问题吗?我是否需要添加某种向后兼容性标志?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-09-04 23:12:06

我让exceljs使用下面的tsconfig.app.json设置来处理agnular 10,注意compilerOptions下的pathstypes属性-

代码语言:javascript
复制
{
  "extends": "./tsconfig.base.json",
  "compilerOptions": {
    "outDir": "./out-tsc/app",
    "paths": {
     "exceljs": [
       "node_modules/exceljs/dist/exceljs.min"
     ]
   },
    "types": ["node"],
  },
  "files": [
    "src/main.ts",
    "src/polyfills.ts"
  ],
  "include": [
    "src/**/*.d.ts"
  ]
}

然后你可以导入Workbook并像下面这样创建工作表-

代码语言:javascript
复制
import { Workbook } from 'exceljs';
....
let workbook = new Workbook();
let worksheet = workbook.addWorksheet('Sample sheet');

请检查正在运行的sample app here

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62674329

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档