Exporter des données vers Excel en Angular

Rana Hasnain Khan 2 juin 2022
Exporter des données vers Excel en Angular

Cet article explique comment exporter des données vers Excel dans Angular.

Exporter des données vers Excel en Angular

Il existe de nombreuses situations dans lesquelles nous pouvons avoir besoin d’utiliser une fonction d’exportation dans notre application Angular. Nous pouvons vouloir donner une option sous forme de bouton sur notre application pour que les clients ou les clients exportent les données des tableaux vers des feuilles Excel ou de JSON vers des feuilles Excel.

Ce tutoriel discutera de l’exportation des données de notre application au format Excel avec des exemples. À cette fin, nous pouvons utiliser la bibliothèque xlsx dans Angular, qui nous donne la possibilité de convertir les données JSON au format Excel.

Passons en revue un exemple dans lequel nous allons créer des données JSON des saisons météorologiques de l’année. Nous devons d’abord installer Angular CLI dans notre système.

Tout d’abord, nous allons créer un nouveau projet sur Angular en exécutant la commande suivante dans la ligne de commande.

ng new angular-app

Une fois notre nouvelle application créée avec succès, nous irons dans notre dossier d’application à l’aide de la commande suivante.

cd ./angular-app

Nous allons installer la librairie xlsx en utilisant le module npm. Nous utiliserons la commande suivante pour l’installer.

npm i xlsx --save

Nous allons maintenant créer une liste fictive des saisons météorologiques sur une année. Nous créons nos données JSON factices dans cet exemple, mais elles peuvent être récupérées via une base de données ou certaines API.

Les données factices sont présentées ci-dessous.

Seasons = [
{ 	"id": 1,
	"name": "Spring",
	"Fruit": "Orange" },
{	"id": 2,
	"name": "Summer",
	"Fruit": "Mango"},
{	"id": 3,
	"name": "Winter",
	"Fruit": "Apple"},
{	"id": 4,
	"name": "Autumn",
	"Fruit": "Banana"}]

Maintenant, nous allons créer l’application frontale dans laquelle nous allons créer la table qui affichera les données JSON. Le code mis à jour dans le fichier app.component.html est présenté ci-dessous.

<div>
  <button (click)="exportToExcel()">Export to Excel</button>
  <table id="season-tble">
    <tr>
      <th>Id</th>
      <th>name</th>
      <th>Fruit</th>
    </tr>
    <tr *ngFor="let season of Seasons">
      <td>{{ season.id }}</td>
      <td>{{ season.name }}</td>
      <td>{{ season.fruit }}</td>
    </tr>
  </table>
</div>

Nous allons maintenant créer une fonction dans le fichier app.component.ts pour exporter les données au format Excel, comme indiqué ci-dessous.

import { Component, VERSION } from '@angular/core';
import * as XLSX from 'xlsx';

@Component({
  selector: 'my-app',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.css'],
})
export class AppComponent {
  Seasons = [
    { id: 1, name: 'Spring', fruit: 'Orange' },
    { id: 2, name: 'Summer', fruit: 'Mango' },
    { id: 3, name: 'Winter', fruit: 'Apple' },
    { id: 4, name: 'Autumn', fruit: 'Banana' },
  ];

  name = 'ExcelSheet.xlsx';
  exportToExcel(): void {
    let element = document.getElementById('season-tble');
    const worksheet: XLSX.WorkSheet = XLSX.utils.table_to_sheet(element);

    const book: XLSX.WorkBook = XLSX.utils.book_new();
    XLSX.utils.book_append_sheet(book, worksheet, 'Sheet1');

    XLSX.writeFile(book, this.name);
  }
}

Comme indiqué ci-dessous, nous ajouterons du code CSS pour que notre frontal soit beau.

td{
  border: 1px solid black;
  padding: 10px;
}
button{
  background: black;
  padding: 10px;
  color: white;
  margin-bottom: 50px;
}

Maintenant, nous allons exécuter l’application avec la commande ci-dessous.

npm start

Production:

exporter vers l&rsquo;interface Excel dans Angular

Maintenant, cliquons sur le bouton export et vérifions si le programme fonctionne. Lorsque nous cliquons sur le bouton, il télécharge le fichier avec le nom que nous avons enregistré, comme indiqué ci-dessous.

exporté vers excel en Angular

Maintenant, ouvrons ce fichier et vérifions à quoi il ressemble, comme indiqué ci-dessous.

données Excel dans l&rsquo;exportation vers Excel dans Angular

Rana Hasnain Khan avatar Rana Hasnain Khan avatar

Rana is a computer science graduate passionate about helping people to build and diagnose scalable web application problems and problems developers face across the full-stack.

LinkedIn