2009-03-09 20 views
6

Estoy tratando de escribir una pequeña herramienta web que toma un archivo de Excel, analiza el contenido y luego compara los datos con otro conjunto de datos. ¿Se puede hacer esto fácilmente en JavaScript? ¿Hay una biblioteca de JavaScript que hace esto?Cómo analizar un archivo Excel en JavaScript?

Respuesta

6

¿Cómo cargarías un archivo en JavaScript en primer lugar?

Además, Excel es un formato patentado y lo suficientemente complejo como para que las bibliotecas del lado del servidor con años de desarrollo (como Apache POI) aún no hayan logrado correctamente el 100% de ingeniería inversa de estos formatos de Microsoft.

Así que creo que la respuesta es que no se puede.

Actualización: Eso es en JavaScript puro.

Actualización 2: Ahora es posible cargar archivos en JavaScript: https://developer.mozilla.org/en-US/docs/DOM/FileReader

+0

JavaScript no puede leer un archivo en (a excepción de adiciones algo recientes que probablemente no estén disponibles en IE), pero puede ayudarlo con un servidor web que responda a una solicitud AJAX con el contenido del archivo. Administrar datos binarios arbitrarios tampoco es fácil en JS (Excepto en adiciones recientes, probablemente aún no compatibles con IE ...) – Frank

+3

No estoy seguro de cuál era el estado del arte en el momento de esta publicación, pero ahora lo hacemos tener APIs como el objeto FileReader en Firefox, Opera y Chrome para cargar archivos en Javascript. La naturaleza patentada del formato sigue siendo un problema, aunque he visto bibliotecas para otros lenguajes capaces de analizar archivos básicos de Excel, pero no en Javascript. –

+0

@wybiral http://niggler.github.io/js-xlsx/ y http://niggler.github.io/js-xls/ parecen ajustarse a la factura –

-1

hacer todo en js, que tendrá que utilizar ActiveX y probablemente los componentes de Office Web también. Solo una sugerencia, pero probablemente no quieras seguir esta ruta; será ineficiente e IE/Win solamente. Estará mejor con una solución basada en servidor.

-2

¿Tiene realmente necesita un archivo de Excel? ¿Por qué no utilizar Excel para exportar los datos en CSV o XML y cargar eso?

El formato de archivo de Excel es muy específico para la implementación de Excel. Si solo necesita los datos, use un formato de archivo que solo contenga los datos.

+1

El problema con esa solución es que requiere intervención manual. El excel tiene varias hojas de trabajo con muchos fomulas y no hay una forma automatizada fácil de convertir xls a csv, al menos de lo que yo sé. Actualice esto si conoce alguna herramienta que lo haga de una manera sencilla. – vivekian2

-1

Deberá usar ActiveX (consulte las escuelas W3C sobre el uso de AJAX) y registrar el archivo en los conectores Dataconnectors (solo el equipo que aloja el archivo). A diferencia de lo mencionado anteriormente, este método no depende de la plataforma de Microsoft (para el cliente de todos modos) y no necesita tener instalados los componentes de Office.

Esto se puede hacer para la mayoría de los archivos de datos registrados en Windows, incluidos los MDB, y le permite todo el control que desee, ya que puede asignar diferentes cuentas de Windows para diferentes propósitos.

Como he dicho antes, todo esto está en el servidor y no tiene ningún impacto en el cliente, aparte de tal vez recuperar credenciales, acciones y todo eso.

Este método usa JavaScript, SQL (no, ni siquiera MSSQL, solo estándar de SQL) y solo requiere que la computadora de alojamiento ejecute CUALQUIER plataforma de Microsoft NT.

Lo que hacen los dataconnectors de Windows es proporcionar una interfaz generalizada para varios componentes de datos, al igual que DirectX para tarjetas de video y otros periféricos. También puede usarlo para vincular un MDB (Microsoft Access) a un servidor MySQL y alimentar datos en vivo de esa manera, lo que creo que es incluso más simple que usar hojas de cálculo XLS ... especialmente dado que puede importar XLS a MDB.

2

En los últimos cuatro años, ha habido muchos avances. HTML5 File API ha sido adoptado por los principales proveedores de navegadores y las mejoras de rendimiento realmente hacen que sea posible analizar los archivos de Excel (xls y xlsx) en el navegador.

que he presentado en este espacio:

Ambos son puras-JS analizadores

Cuestiones relacionadas