views:

765

answers:

11

Before you start flaming, I'm going to tell you that I am trying to convince myself that this is a bad idea.

Basically, I'm trying to create a website with some basic accounting functions. My friend, a consultant who only knows excel, asked if this could be an excel spreadsheet instead of a web interface.

I found myself thinking, why is excel not the better tool in this case? It has all the tools a web2.0 app has (scripting, access to a db, basic formatting), and is made for accounting. You could basically use excel to write a program that fetches data from an SQL database, populates some cells, and use formulas for the rest.

Is there precedent to using excel as one would use the browser to make an ajax-y web2 app?

Why is this a bad idea?

Update: just to clarify I meant this to be more a "rhetorical" discussion. I'm not sure why the rest of the message didn't clarify that...

+1  A: 

The web is inherently based on HTML and added to with Databases, CSS and server-side languages and javascript (possibly others). As with most things, you should use the right tool for the job. If you want a website then you should use the tools for creating a website.

Excel is not meant to make websites, forcing it to do so will likely lead to more frustration than happiness.

Paulo
+1 for the mention of "right tool for the job".
musicfreak
My interpretation of the post was that he's contemplating a client side app based on excel as an alternative to a website.
Bayard Randel
The right tool for the job (accounting app) in this case could be excel. I agree that using excel is unorthodox, but you are not making a case here. The website is a means to an end. Why is excel not a suitable means to that end?
chris
I just reread the post and I misinterpreted his question. I thought his intention was to create a website, not a client-side tool. I wish I was able to down-vote my own post.:(
Paulo
+2  A: 

It's not a bad idea, but it does come with some limitations. If deployment isn't an issue for you, and you don't need "universal" access to the application, your solution will likely save you some time. A web application would certainly be a more elegant approach, particularly if you want to make the software available publicly.

Bayard Randel
+1  A: 

It's a bad idea for the same reason that writing a graphics editor with MS Access is bad, or coding a MMORPG using Powerpoint is bad :)

I would also say that once you stop using a browser as the client it ceases to be a "web application" - you are really just talking about an Excel sheet which fetches its data via HTTP.

Paul Dixon
Soon I'll be able to downvote insightful comments like that...
chris
Enjoy :) Really, I'm just restating the "right tool for the job" argument. +1 to chris though who mentions licencing issues.
Paul Dixon
+1  A: 

Well, you're going to run it on the server side, you'd probably run into licencing and performance issues.

If you're delivering .xls to the client, then you'd need for all your clients to have Excel or something compatible. But you also lose control over your "site" - what's the point of visiting if you have everything you need locally?

chris
But you also lose control over your "site" - what's the point of visiting if you have everything you need locally?I don't care about impressions, I care about providing functionality.Also you might have misread: data would be loaded on-the-fly from some sort of SQL server, just like an AJAX app.
chris
+10  A: 

Well, if you made it in excel, then it wouldn't really be a web application. It would be an Excel application.

Not that that's a bad thing though. If it makes more sense to build the app in Excel, then go for it.

The problems you'll have doing it in Excel will be the same as the problems you run into with any desktop vs. web application. For example, How do you handle deploying new versions of the app? How do you handle updating the app for new (or older) versions of Excel? etc.

ETA:

If you want to avoid the bugginess of Excel VBA and the headaches of managing a desktop application, you might want to look into the Google Spreadsheets API. You can use it to create/update Google docs spreadsheets on the fly, including formulas and lots of other spreadsheet goodness. Using a hybrid of web application and Google Spreadsheets might give you the best of both worlds, depending on what exactly you need to do.

Eric Petroelje
Exactly. I think this is the real question the OP must answer: does he need an excel app, or a web app?
Adriano Varoli Piazza
You are right. I need to solve a problem for a limited number of people, that own small or mid sized companies. This is the target. The question is, why is excel a bad means to that end?
chris
Why indeed? Is it actually? You framed the question as 'I need to make a web app. Is it bad to do it in Excel?', instead of 'I need to make an Excel app'. We could (I couldn't, actually) discuss that.
Adriano Varoli Piazza
+10  A: 

After years of programming in Excel-VBA, the best answer that I can give you for not doing this:

Excel-VBA is buggy! It is probably the most bug-filled app that Microsoft has produced. It's great for some tasks, but forcing it to do a job for which it was never intended will lead to trouble.

I have a few spreadsheets that do similar things, (things Bill never intended), and without exception, they teeter on the brink of failure, and tend to crash with only the slightest provocation.

Sure, you can do it, but the headache is not worth it.

Stewbob
The question here is: is the job which Chris wants to do not intended for Excel?
Adriano Varoli Piazza
+3  A: 

Excel was not meant to be used that way, so it will be painful.

Two better ideas for web-spreadsheet integration:

  • Take a look at Resolver One, a programmable Excel-compatible spreadsheet with an integrated web server.
  • Use Google Docs spreadsheets. There is an API to interact programmatically with them.
Roberto Bonvallet
+1  A: 

So, the SQL statements would be on the client? That's rarely a good idea.

criddell
A: 

Did you start by getting user requirements for this application? It doesn't sound like they wanted a website to begin with. Sounds like they wanted an excel spreadsheet with macros.

nikudesu
+1  A: 

+1 to everyone who said "an excel app is not a web app."

BUT... If you want to use the spreadsheet metaphor for server-side calculations for a web app, or if you want to access the library of financial functions that come with Excel from server-side code, you can use Excel Services. It's exposed via SOAP, interoperable, callable from any SOAP-capable platform.

It's server-capable. It does not actually load Excel on the server, but a non-GUI runtime of the functions.

Cheeso
A: 

I think that using Excel as Browser is bad idea, however i think better idea is to use Excel Control in Desktop App.

This way you can control the sql and connections. you can save data as often as you like. you could also implement some update mechanism. App would be more secure and harder to hack.

I think Excel freezes when you try to connect to some outside resource and this way you would control everything.

01