gpt4 book ai didi

javascript - Angular : Can't export excel using ExcelJS - error TS2307: Cannot find module 'stream' - error TS2503: Cannot find namespace 'NodeJS'

转载 作者:行者123 更新时间:2023-12-03 07:02:37 24 4
gpt4 key购买 nike

我尝试使用 导出 excel 文件ExcelJS

这是我的控制台在 VS Code 终端中:

ERROR in node_modules/exceljs/index.d.ts:1398:22 - error TS2307: Cannot find module 'stream'.

1398 read(stream: import('stream').Stream): Promise<Workbook>;
~~~~~~~~
node_modules/exceljs/index.d.ts:1424:23 - error TS2307: Cannot find module 'stream'.

1424 write(stream: import('stream').Stream, options?: Partial<XlsxWriteOptions>): Promise<void>;
~~~~~~~~
node_modules/exceljs/index.d.ts:1511:22 - error TS2307: Cannot find module 'stream'.

1511 read(stream: import('stream').Stream, options?: Partial<CsvReadOptions>): Promise<Worksheet>;
~~~~~~~~
node_modules/exceljs/index.d.ts:1531:23 - error TS2307: Cannot find module 'stream'.

1531 write(stream: import('stream').Stream, options?: Partial<CsvWriteOptions>): Promise<void>;
~~~~~~~~
node_modules/exceljs/index.d.ts:1828:19 - error TS2307: Cannot find module 'stream'.

1828 stream: import('stream').Stream;
~~~~~~~~
node_modules/exceljs/index.d.ts:1872:34 - error TS2503: Cannot find namespace 'NodeJS'.

1872 dictionary: Buffer | NodeJS.TypedArray | DataView | ArrayBuffer; // deflate/inflate only, empty dictionary by default ~~~~~~

这里是 app.component.html
<!DOCTYPE html>
<html lang="en">

<head>
<title>Bootstrap Example</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">

<!-- <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css"> -->

<!-- serial must : first jquery then popper then bootstrap -->
<!-- <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.16.0/umd/popper.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js"></script> -->


</head>

<body>

<div class="row">

<div class="col-md-2">
<button class="btn btn-secondary" (click)='downloadExcel()'>Download as Excel</button>
</div>

</div>

</body>

</html>

这里是 app.component.ts
import { Component } from '@angular/core';
import * as Excel from 'exceljs';

@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent {
title = 'resttest10';

async downloadExcel() {

const date = new Date().toISOString().slice(0, 10).split('-').reverse().join('/');
console.log(date);
const workbook = new Excel.Workbook();
const worksheet = workbook.addWorksheet('My Sheet');

worksheet.columns = [
{ header: 'Id', key: 'id', width: 10 },
{ header: 'Name', key: 'name', width: 32 },
{ header: 'D.O.B.', key: 'dob', width: 15, }
];

worksheet.addRow({ id: 1, name: 'John Doe', dob: new Date(1970, 1, 1) });
worksheet.addRow({ id: 2, name: 'Jane Doe', dob: new Date(1965, 1, 7) });

// save under export.xlsx
await workbook.xlsx.writeFile('export.xlsx');

// load a copy of export.xlsx
const newWorkbook = new Excel.Workbook();
await newWorkbook.xlsx.readFile('export.xlsx');

const newworksheet = newWorkbook.getWorksheet('My Sheet');
newworksheet.columns = [
{ header: 'Id', key: 'id', width: 10 },
{ header: 'Name', key: 'name', width: 32 },
{ header: 'D.O.B.', key: 'dob', width: 15, }
];
await newworksheet.addRow({ id: 3, name: 'New Guy', dob: new Date(2000, 1, 1) });

await newWorkbook.xlsx.writeFile('export2.xlsx');

console.log('File is written');
}
}

我不明白它为什么要寻找流模块(还有更有趣的事情-找不到命名空间'NodeJS'-我可以运行所有其他 Angular NodeJS项目而不会出错)

请指出为什么我不能导出excel。

最佳答案

在您的 tsconfig.app.json 文件中添加 "types": ["node"]
请注意,“类型”位于 tsconfig 的 compilerOptions 部分中。

关于javascript - Angular : Can't export excel using ExcelJS - error TS2307: Cannot find module 'stream' - error TS2503: Cannot find namespace 'NodeJS' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62127452/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com