web-dev-qa-db-fra.com

Lire des données Excel avec JQuery

J'aimerais savoir comment lire des données à partir d'un fichier MS Excel 2003 contenant plusieurs feuilles de travail sans rien utiliser, mais jquery. J'ai lu plusieurs solutions pour PHP/JQuery, ActiveX, etc., mais j'aimerais le faire avec JQuery ONLY. Une idée de comment cela pourrait fonctionner?

J'ai trouvé http://plugins.jquery.com/project/csv2table et cela fonctionne presque parfaitement, à l'exception du fait que je dois décomposer chaque feuille dans un fichier CSV. J'aimerais abandonner cette étape et la lire directement à partir du fichier Excel. Merci d'avance pour votre aide!

BTW - Je travaille dans FireFox 4 et n'ai pas besoin de la prise en charge de plusieurs navigateurs.

16
Robert Fleming

Les composants Web Office fournissent une api aux documents Excel via JavaScript (ou vb). Ils sont mal documentés mais ils peuvent faire le travail pour les applications de type intranet. Je les ai utilisés pour la fonctionnalité de tableau croisé dynamique dans IE6 et je ne sais pas si cela fonctionnera avec Firefox. 

http://en.wikipedia.org/wiki/Office_Web_Components

http://www.Microsoft.com/downloads/en/details.aspx?FamilyID=beb5d477-2100-4586-a13c-50e56f101720&DisplayLang=en

8
jason saldo

En fait, c'est possible sans OWC et ces compléments exotiques, mais un travail manuel sera nécessaire ... Une autre chose (faisable uniquement sur une machine locale) ne vous attendez pas à ce que votre feuille de calcul se comporte comme un serveur Web. Une autre possibilité consiste à l'installer sur un partage réseau, mais je ne sais pas comment cela fonctionnera dans le bac à sable.

EDIT: Je sais que la question portait sur le format Excel 2003. Cependant, il existe encore des requêtes de Google sur les mêmes fonctionnalités et, de nos jours, les utilisateurs utilisent les versions MS Office 2010/2013. bénéfique pour le lecteur.

Alors, la voici:

  1. En utilisant Zip.js vous pouvez ouvrir des fichiers zippés. Cela signifie que vous pouvez ouvrir les fichiers MS Office à partir d'Office 2007 (.docx, .xlsx, etc.). Les fichiers Office plus anciens ont un format personnalisé et vous ne pouvez pas les lire sous forme de fichiers zippés.
  2. Une fois le fichier ouvert, une structure de dossiers hiérarchique contenant différents fichiers est disponible. Les données elles-mêmes sont dans /xl/worksheets/[worksheet name].xml et /xl/sharedStrings.xml, ce qui signifie que vous devez les creuser à l'aide d'un analyseur XML et les corréler par la suite.
  3. Heureusement, l'analyseur XML est disponible dans jQuery: $.parseXML('...')

S'amuser ;)

4

Je me rends compte que cette question est ancienne, mais j’ai un analyseur syntaxique de base qui prend en charge la plupart de vos demandes: http://oss.sheetjs.com/js-xls/

3
SheetJS

Il existe quelques outils (bibliothèques) pour nodeJS que vous pouvez trouver sur le site Web npm . Il existe un outil appelé Excel qui lit les fichiers xlsx et un autre appelé office pour la plupart des fichiers ms office . , vous devriez pouvoir télécharger et consulter le code source pour trouver un moyen de l’intégrer côté client .

0
Naman Goel