我刚刚使用 ng update 将我的应用程序从 9 的最新版本升级到了 angular 10。我知道有重大变化,并且在大多数情况下它升级得很好,但是我目前从 exceljs 收到错误:
"export 'Workbook' (imported as 'Excel') was not found in 'exceljs/dist/exceljs'
Run Code Online (Sandbox Code Playgroud)
在升级之前,它使用的是 exceljs 2.0.1 版。现在它使用的是 exceljs 4.0.1。(它是最新版本之前的一个版本,因为由于选项参数被标记为必需,因此会出现阻止在最新版本中编译的错误。这应该无关紧要。)
导入语句如下:
import * as Excel from "exceljs/dist/exceljs";
Run Code Online (Sandbox Code Playgroud)
代码本身对于 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");
Run Code Online (Sandbox Code Playgroud)
但是现在它甚至无法访问该代码,因为角度编译已损坏。
知道如何解决这个问题吗?我需要添加某种向后兼容标志吗?
我得到了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"
]
}
Run Code Online (Sandbox Code Playgroud)
然后您可以导入Workbook和创建如下工作表 -
import { Workbook } from 'exceljs';
....
let workbook = new Workbook();
let worksheet = workbook.addWorksheet('Sample sheet');
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1355 次 |
| 最近记录: |