¿Escribir una aplicación web en Excel? Por qué no?

Antes de que comiences a flaming, voy a decirte que estoy tratando de convencerme de que esta es una mala idea.

Básicamente, estoy tratando de crear un website con algunas funciones básicas de contabilidad. Mi amigo, un consultor que solo conoce Excel, me preguntó si podría ser una spreadsheet Excel en lugar de una interfaz web.

Me encontré pensando: ¿por qué Excel no es la mejor herramienta en este caso? Tiene todas las herramientas que tiene una aplicación web2.0 (scripting, acceso a un db, formatting básico), y está hecho para la contabilidad. Básicamente, puede utilizar Excel para escribir un progtwig que obtiene datos de una database SQL, rellena algunas celdas y usa fórmulas para el rest.

¿Existe un precedente para usar Excel como uno usaría el browser para hacer una aplicación web2 ajax-y?

¿Por qué es esto una mala idea?

Actualización: solo para aclarar, quise decir que se trataba más de una discusión "retórica". No estoy seguro de por qué el rest del post no aclaraba eso …

Bueno, si lo hiciste en Excel, entonces realmente no sería una aplicación web. Sería una aplicación de Excel.

Aunque eso no es malo. Si tiene más sentido build la aplicación en Excel, entonces ve por ella.

Los problemas que tendrá al hacerlo en Excel serán los mismos que los problemas con los que se topa con cualquier aplicación de escritorio o web. Por ejemplo, ¿cómo maneja la implementación de nuevas versiones de la aplicación? ¿Cómo maneja la actualización de la aplicación para versiones nuevas (o anteriores) de Excel? etc.

ETA:

Si desea evitar el funcionamiento de Excel VBA y los dolores de cabeza de administrar una aplicación de escritorio, es posible que desee consultar la API de Google Spreadsheets . Puede usarlo para crear / actualizar hojas de cálculo de Google Docs sobre la marcha, incluidas fórmulas y muchos otros beneficios de hojas de cálculo. Usar un híbrido de aplicación web y Hojas de cálculo de Google podría darte lo mejor de ambos mundos, dependiendo de lo que necesites hacer exactamente.

Después de años de progtwigción en Excel-VBA, la mejor respuesta que puedo darte para no hacer esto:

¡Excel-VBA tiene errores! Es probablemente la aplicación más llena de errores que ha producido Microsoft. Es ideal para algunas tareas, pero obligarlo a hacer un trabajo para el que nunca fue concebido generará problemas.

Tengo algunas hojas de cálculo que hacen cosas similares, (cosas que Bill nunca pensó), y sin exception, se balancean al borde del fracaso y tienden a queuepsar con la más mínima provocación.

Claro, puedes hacerlo, pero el dolor de cabeza no vale la pena.

Excel no estaba destinado a ser utilizado de esa manera, por lo que será doloroso.

Dos mejores ideas para la integración web-spreadsheet:

  • Eche un vistazo a Resolver One , una spreadsheet progtwigble compatible con Excel con un server web integrado.
  • Use las hojas de cálculo de Google Docs . Hay una API para interactuar programáticamente con ellos.

No es una mala idea, pero tiene algunas limitaciones. Si la implementación no es un problema para usted, y no necesita acceso "universal" a la aplicación, su solución probablemente le ahorrará time. Una aplicación web sería sin duda un enfoque más elegante, especialmente si desea que el software esté disponible públicamente.

La web se basa intrínsecamente en HTML y se agrega a las bases de datos, CSS, idiomas del lado del server y javascript (posiblemente otros). Como con la mayoría de las cosas, debe usar la herramienta adecuada para el trabajo. Si desea un website, entonces debe usar las herramientas para crear un website.

Excel no está destinado a crear sitios web, obligarlo a hacerlo probablemente conducirá a más frustración que felicidad.

Bueno, vas a ejecutarlo desde el lado del server, probablemente te encuentres con problemas de licencias y performance.

Si está entregando .xls al cliente, entonces necesita que todos sus clientes tengan Excel o algo compatible. Pero también pierde el control sobre su "sitio". ¿De qué sirve visitar si tiene todo lo que necesita a nivel local?

Entonces, ¿las declaraciones SQL estarían en el cliente? Rara vez es una buena idea.

Es una mala idea por la misma razón que escribir un editor de charts con MS Access es malo, o codificar un MMORPG usando Powerpoint es malo 🙂

También diría que una vez que dejas de usar un browser como cliente deja de ser una "aplicación web", en realidad estás hablando de una hoja de Excel que obtiene sus datos a través de HTTP.

+1 a todos los que dijeron "una aplicación de Excel no es una aplicación web".

PERO … Si desea usar la metáfora de la spreadsheet para los cálculos del lado del server para una aplicación web, o si desea acceder a la biblioteca de funciones financieras que vienen con Excel desde el código del lado del server, puede usar los Servicios de Excel . Está expuesto a través de SOAP, es interoperable y se puede llamar desde cualquier plataforma compatible con SOAP.

Es capaz de server. En realidad, no carga Excel en el server, sino un time de ejecución no GUI de las funciones.

Creo que usar Excel como browser no es una buena idea, pero creo que es mejor utilizar Excel Control en la aplicación de escritorio.

De esta forma puede controlar el sql y las conexiones. puede save datos tan a menudo como desee. también podría implementar algún mecanismo de actualización. La aplicación sería más segura y más difícil de hackear.

Creo que Excel se congela cuando intentas conectarte a algún recurso externo y de esta forma controlarías todo.

¿Comenzó obteniendo los requisitos del usuario para esta aplicación? No parece que quisieran un website para comenzar. Parece que querían una spreadsheet Excel con macros.