2009-03-09 32 views
6

Sto provando a scrivere un piccolo strumento Web che prende un file Excel, analizza il contenuto e quindi confronta i dati con un altro set di dati. Questo può essere fatto facilmente in JavaScript? C'è una libreria JavaScript che fa questo?Come analizzare un file Excel in JavaScript?

risposta

6

Come caricheresti un file in JavaScript, in primo luogo?

Inoltre, Excel è un formato proprietario e sufficientemente complesso che le librerie lato server con anni di sviluppo (come ad esempio Apache POI) non sono ancora state gestite correttamente al 100% con il reverse engineering di questi formati Microsoft.

Quindi penso che la risposta sia che non puoi.

Aggiornamento: Questo è in puro JavaScript.

Aggiornamento 2: E 'ora possibile caricare i file in JavaScript: https://developer.mozilla.org/en-US/docs/DOM/FileReader

+0

JavaScript non è in grado di leggere un file in stesso (tranne che per aggiunte un po 'recenti che probabilmente non sono disponibili in IE), ma puoi aiutarlo con quello usando un server web che risponde a una richiesta AJAX con i contenuti. Gestire dati binari arbitrari non è facile neanche in JS (Tranne che per aggiunte recenti, probabilmente non compatibili con IE ...) – Frank

+3

Non sono sicuro di quale stato dell'arte ci sia al momento di questo post, ma ora lo facciamo avere API come l'oggetto FileReader in Firefox, Opera e Chrome per caricare i file in Javascript. La natura proprietaria del formato è ancora un problema, anche se ho visto librerie per altri linguaggi in grado di analizzare file Excel di base, ma non in Javascript. –

+0

@wybiral http://niggler.github.io/js-xlsx/ e http://niggler.github.io/js-xls/ sembrano adattarsi alla bolletta –

-1

di fare tutto in js, dovrete utilizzare ActiveX e probabilmente l'Office Web Components pure. Solo un suggerimento, ma probabilmente non vuoi seguire questa strada; sarà inefficiente e solo IE/Win. Starai meglio con una soluzione basata su server.

-2

Avete un veramente necessario un file Excel? Perché non utilizzare Excel per esportare i dati in CSV o XML e caricarlo?

Il formato di file Excel è molto specifico per l'implementazione di Excel. Se hai solo bisogno dei dati, usa un formato file che contenga solo i dati.

+1

Il problema con questa soluzione è che richiede un intervento manuale. L'excel ha più fogli di lavoro con un sacco di fomulas e non esiste un modo semplice e automatizzato per convertire xls in csv, almeno di questo so. Si prega di aggiornare questo se si conosce qualche strumento che lo fa in un modo semplice. – vivekian2

-1

È necessario utilizzare ActiveX (vedere Scuole W3C sull'uso di AJAX) e registrare il file nei Dataconnectors dei computer di hosting (solo il computer che ospita il file). A differenza di quanto accennato prima, questo metodo non è dipendente dalla piattaforma Microsoft (per il client in ogni caso) e non è necessario che i componenti di Office siano installati.

Questo può essere fatto per la maggior parte dei file di dati registrati in Windows, inclusi gli MDB, e consente di avere tutto il controllo che si desidera, dato che è possibile assegnare diversi account Windows per scopi diversi.

Come ho detto prima, tutto questo è lato server e non ha alcun impatto sul client, a parte forse il recupero delle credenziali, azioni e tutto il resto.

Questo metodo utilizza JavaScript, SQL (no, nemmeno MSSQL, solo standard SQL) e richiede solo che il computer host esegua QUALSIASI piattaforma Microsoft NT.

Cosa dataconnectors di Windows fare è fornire un'interfaccia generalizzata per i vari componenti di dati molto simile a DirectX fa per schede video e altre periferiche. È anche possibile utilizzarlo per collegare un MDB (Microsoft Access) ad un server MySQL e feed di dati vivono in quel modo, che a mio avviso è ancora più semplice che usare i fogli di calcolo XLS ... soprattutto perché è possibile importare in XLS MDB.

2

Negli ultimi quattro anni, ci sono stati molti progressi. HTML5 File API è stato abbracciato dai principali produttori di browser e miglioramenti delle prestazioni effettivamente fare in qualche modo possibile analizzare i file excel (sia XLS e XLSX) nel browser.

mie entrate in questo spazio:

Entrambi sono puri-JS parser

Problemi correlati