web-dev-qa-db-fra.com

Lire le fichier Excel local avec JS-XLSX en utilisant Angular 11?

J'ai mon serveur de développement angular-cli frontend exécutant localement sur localhost:4200

Pour des raisons spécifiques, j'ai besoin d'obtenir un fichier Excel local stocké sur mon PC, lisez son contenu et effectuez quelques appels à une API. Et il doit être du côté client.

J'essaie d'utiliser JS-XLSX, je l'ai installé avec npm install xlsx Mais je ne trouve pas comment obtenir le fichier et lire son contenu.

Comment puis-je importer un fichier Excel local avec JS-XLSX IN Angular 11?

Remarque: S'il est possible/plus facile en utilisant Pure JavaScript, il est également valable pour moi.

4
Iñigo

Dans mon cas, je veux des données comme

[['1', '2'], ['3', '4']]]

aussi des données comme

{'1': '3', '2': '4'}

De sorte que j'ai fait le code suivant

uploadFile(uploadedFile){
    let workBook = null;
    const reader = new FileReader();
    const file = uploadedFile[0];
    reader.onload = (event) => {
      const data = reader.result;
      workBook = XLSX.read(data, { type: 'binary' });
      const sheet_name_list = workBook.SheetNames;

      this.xlData = XLSX.utils.sheet_to_json(workBook.Sheets[sheet_name_list[0]]);
      log("xlData >>> ",JSON.stringify(this.xlData));

      this.arraySaparater = (XLSX.utils.sheet_to_json(workBook.Sheets[sheet_name_list[0]], { header: 1 }));
      this.arraySaparater = this.arraySaparater.filter((row)=>{
        if(Array.isArray(row) && row.length){
          return row;
        }
        else{
          return false;
        }
      });
      log('ArraySaparater >>>',JSON.stringify(this.arraySaparater));

    }
    reader.readAsBinaryString(file);
}
0
Renish Gotecha