title: Angular : Can't export excel using ExcelJS - error TS2307: Cannot find module 'stream' - error TS2503: Cannot find namespace 'NodeJS'
body: <p>I was try to export an excel file using <strong>ExcelJS</strong></p>
  
  <p>Here is my <strong>console</strong> in VS Code terminal :</p>
  
  <pre><code>ERROR in node_modules/exceljs/index.d.ts:1398:22 - error TS2307: Cannot find module 'stream'.
  
  1398  read(stream: import('stream').Stream): Promise&lt;Workbook&gt;;
                            ~~~~~~~~
  node_modules/exceljs/index.d.ts:1424:23 - error TS2307: Cannot find module 'stream'.
  
  1424  write(stream: import('stream').Stream, options?: Partial&lt;XlsxWriteOptions&gt;): Promise&lt;void&gt;;
                             ~~~~~~~~
  node_modules/exceljs/index.d.ts:1511:22 - error TS2307: Cannot find module 'stream'.
  
  1511  read(stream: import('stream').Stream, options?: Partial&lt;CsvReadOptions&gt;): Promise&lt;Worksheet&gt;;
                            ~~~~~~~~
  node_modules/exceljs/index.d.ts:1531:23 - error TS2307: Cannot find module 'stream'.
  
  1531  write(stream: import('stream').Stream, options?: Partial&lt;CsvWriteOptions&gt;): Promise&lt;void&gt;;
                             ~~~~~~~~
  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                                      ~~~~~~
  </code></pre>
  
  <p>here is <strong>app.component.html</strong></p>
  
  <pre><code>&lt;!DOCTYPE html&gt;
  &lt;html lang="en"&gt;
  
  &lt;head&gt;
    &lt;title&gt;Bootstrap Example&lt;/title&gt;
    &lt;meta charset="utf-8"&gt;
    &lt;meta name="viewport" content="width=device-width, initial-scale=1"&gt;
  
    &lt;!-- &lt;link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css"&gt; --&gt;
  
    &lt;!-- serial must : first jquery then popper then bootstrap --&gt;
    &lt;!-- &lt;script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"&gt;&lt;/script&gt;
    &lt;script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.16.0/umd/popper.min.js"&gt;&lt;/script&gt;
    &lt;script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js"&gt;&lt;/script&gt; --&gt;
  
  
  &lt;/head&gt;
  
  &lt;body&gt;
  
      &lt;div class="row"&gt;
  
        &lt;div class="col-md-2"&gt;
          &lt;button class="btn btn-secondary" (click)='downloadExcel()'&gt;Download as Excel&lt;/button&gt;
        &lt;/div&gt;
  
      &lt;/div&gt;
  
  &lt;/body&gt;
  
  &lt;/html&gt;
  </code></pre>
  
  <p>here is <strong>app.component.ts</strong></p>
  
  <pre><code>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');
    }
  }
  </code></pre>
  
  <p>I don't get it why it is looking for stream module (and more funny thing - Cannot find namespace 'NodeJS' - I can run all other angular NodeJS projects without error)</p>
  
  <p>Please point out why i can't export excel.</p>