angular - 升级到 Angular 10 会破坏 ExcelJs
问题描述
我刚刚使用 ng update 将我的应用程序从 9 的最新版本升级到 angular 10。我知道有重大变化,并且在大多数情况下它已经升级得很好,但是我目前从 exceljs 收到一个错误:
"export 'Workbook' (imported as 'Excel') was not found in 'exceljs/dist/exceljs'
在升级之前,它使用的是 exceljs 版本 2.0.1。现在它使用的是 exceljs 4.0.1。(它是最新版本之前的一个版本,因为由于选项参数被标记为必需,导致在最新版本中编译时出现错误。这应该没关系。)
导入语句如下:
import * as Excel from "exceljs/dist/exceljs";
代码本身对于 exceljs 来说非常典型。我有一个提供数据的服务:HttpResponse 并将其加载到工作簿中,以便我可以提取一些列。
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");
但它现在甚至无法访问该代码,因为角度编译已损坏。
知道如何解决这个问题吗?我需要添加某种向后兼容性标志吗?
解决方案
我开始exceljs
使用agnular 10
以下tsconfig.app.json
设置,请注意-下的paths
和types
属性compilerOptions
{
"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
并创建如下工作表 -
import { Workbook } from 'exceljs';
....
let workbook = new Workbook();
let worksheet = workbook.addWorksheet('Sample sheet');
推荐阅读
- android - file.exists() 返回 false,无法播放我的音频文件
- checkbox - 使用 wix 安装程序中的复选框根据用户选择安装的功能
- extraction - AssertJ + 从提取的列表中验证列表子集中的项目
- sql - Oracle SQL 动态 PIVOT 本月、过去 6 个月和总计
- java - 如何使用接口共享数据 b/w 片段。我希望打开按钮单击片段 1 中的编辑文本数据以显示在片段 2 的文本视图中
- spring - Spring Cloud 数据流服务器多个命名空间
- wso2 - 在 WSO2 AM-Analytics 中更改密码
- python - Python(如何在不创建新文件的情况下更新 xml 文件)
- java - 从应用程序转到设置时,我的应用程序崩溃,设置中的权限更改并返回应用程序
- sql - SQL 选择 *,但如果存在于另一个表中,则覆盖行的“列值”