Handsontable example

HTML

<app-root></app-root>

CSS

</style><!-- Ugly Hack due to jsFiddle issue -->

<script src="https://cdn.jsdelivr.net/npm/handsontable@7.3.0/dist/handsontable.full.min.js"></script>
<link type="text/css" rel="stylesheet" href="https://cdn.jsdelivr.net/npm/handsontable@7.3.0/dist/handsontable.full.min.css">
<script src="https://handsontable.com/docs/7.3.0/scripts/jsfiddle-fixer.js"></script>
<script src="https://cdn.jsdelivr.net/npm/rxjs@6/bundles/rxjs.umd.js"></script>
<script src="https://cdn.jsdelivr.net/npm/core-js@2/client/core.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/zone.js@0.8/dist/zone.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/@angular/compiler@7/bundles/compiler.umd.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/@angular/core@7/bundles/core.umd.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/@angular/common@7/bundles/common.umd.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/@angular/platform-browser@7/bundles/platform-browser.umd.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/@angular/platform-browser-dynamic@7/bundles/platform-browser-dynamic.umd.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/@handsontable/angular@5.1.0/bundles/handsontable-angular.umd.min.js"></script>

TypeScript

// app.component.ts
  import { Component } from '@angular/core';
  import * as Handsontable from 'handsontable';
  
  @Component({
    selector: 'app-root',
    template: `
    <div>
      <hot-table
        class="hot"
        [data]="dataset"
        [colHeaders]="true"
        [settings]="settings"
        [rowHeaders]="true">
          <hot-column data="id" [readOnly]="true" title="ID"></hot-column>
          <hot-column data="name" title="Full name"></hot-column>
          <hot-column data="address" title="Street name"></hot-column>
           <hot-column></hot-column>
           <hot-column></hot-column>
           <hot-column></hot-column>
           <hot-column></hot-column>
           <hot-column></hot-column>
           <hot-column></hot-column>
           <hot-column></hot-column>
      </hot-table>
    </div>
    `,
  })
  class AppComponent {
    dataset: any[] = [
      {id: 1, name: 'Ted Right', address: 'Wall Street'},
      {id: 2, name: 'Frank Honest', address: 'Pennsylvania Avenue'},
      {id: 3, name: 'Joan Well', address: 'Broadway'},
      {id: 4, name: 'Gail Polite', address: 'Bourbon Street'},
      {id: 5, name: 'Michael Fair', address: 'Lombard Street'},
      {id: 6, name: 'Mia Fair', address: 'Rodeo Drive'},
      {id: 7, name: 'Cora Fair', address: 'Sunset Boulevard'},
      {id: 8, name: 'Jack Right', address: 'Michigan Avenue'},
    ];
    settings = {
    hiddenColumns: true,
    colWidths: 60,
    nestedHeaders: [
      ['A', {label: 'B', colspan: 8}, 'C'],
      ['D', {label: 'E', colspan: 4}, {label: 'F', colspan: 4}, 'G'],
      ['H', {label: 'I', colspan: 2}, {label: 'J', colspan: 2}, {label: 'K', colspan: 2}, {label: 'L', colspan: 2}, 'M'],
      ['N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W']
    ],
    collapsibleColumns: [
      {row: -4, col: 1, collapsible: true},
      {row: -3, col: 1, collapsible: true},
      {row: -2, col: 1, collapsible: true},
      {row: -2, col: 3, collapsible: true}
    ]
    }
  }
  
  //...