188 votes

Comment analyser un fichier Excel (XLS) en Javascript/HTML5 ?

Je suis capable de lire un fichier Excel via FileReader mais il sort du texte ainsi que des caractères bizarres avec. J'ai besoin de lire xls par ligne, lire les données dans chaque colonne et les convertir en JSON.

Comment lire un fichier xls ligne par ligne ?

1 votes

1 votes

@JoachimPileborg : cela ne répond pas à la question. J'ai besoin de lire un fichier Excel ligne par ligne. Bien que je puisse le lire en utilisant FileReader(HTML5), je ne peux toujours pas parcourir les lignes.

0voto

C'est pour react js

import React, { useState } from "react";
import logo from "./logo.svg";
import "./App.css";
import * as XLSX from "xlsx";

function App() {
  const [items, setItems] = useState([]);

  const readExcel = (file) => {
    const promise = new Promise((resolve, reject) => {
      const fileReader = new FileReader();
      fileReader.readAsArrayBuffer(file);

      fileReader.onload = (e) => {
        const bufferArray = e.target.result;

        const wb = XLSX.read(bufferArray, { type: "buffer" });

        const wsname = wb.SheetNames[0];

        const ws = wb.Sheets[wsname];

        const data = XLSX.utils.sheet_to_json(ws);

        resolve(data);
      };

      fileReader.onerror = (error) => {
        reject(error);
      };
    });

    promise.then((d) => {
      setItems(d);
    });
  };

  return (
    <div>
      <input
        type="file"
        onChange={(e) => {
          const file = e.target.files[0];
          readExcel(file);
        }}
      />

      <table class="table container">
        <thead>
          <tr>
            <th scope="col">Item</th>
            <th scope="col">Description</th>
          </tr>
        </thead>
        <tbody>
          {items.map((d) => (
            <tr key={d.Item}>
              <th>{d.Item}</th>
              <td>{d.Description}</td>
            </tr>
          ))}
        </tbody>
      </table>
    </div>
  );
}

export default App;

-5voto

Darin Dimitrov Points 528142

XLS est un format propriétaire binaire utilisé par Microsoft. L'analyse de XLS avec des langages côté serveur est très difficile sans utiliser une bibliothèque spécifique ou Office Interop. Faire cela avec javascript est mission impossible. Grâce à l'API de fichier HTML5, vous pouvez lire son contenu binaire, mais pour l'analyser et l'interpréter, vous devrez vous plonger dans l'API de fichier HTML5. spécifications du format XLS . À partir d'Office 2007, Microsoft a adopté l'approche de la Open XML formats de fichiers ( xslx pour Excel) qui est une norme.

0 votes

@ducktyped, je ne connais pas et n'ai pas vu de code javascript qui lit un fichier Excel binaire.

13 votes

Mission impossible ? J'en doute. Si nous pouvons faire fonctionner le noyau Linux en javascript côté client, alors il devrait être possible d'analyser un fichier Excel binaire. C'est juste que personne à ma connaissance ne l'a encore fait.

0 votes

Voici la documentation pour les curieux de la structure ms xls msdn.microsoft.com/en-us/library/office/

-5voto

i100 Points 1929

Var excel=new ActiveXObject("Excel.Application") ; var book=excel.Workbooks.Open(your_full_file_name_here.xls) ; var sheet=book.Sheets.Item(1) ; var value=sheet.Range("A1") ;

quand vous aurez la feuille. Vous pourriez utiliser les fonctions VBA comme vous le faites dans Excel.

6 votes

Cela ne fonctionne qu'avec "notre cher ami" IE. Et j'ai besoin d'utiliser HTML5. J'ai juste besoin de parcourir le contenu textuel actuel ligne par ligne.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X