10

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...

Chris
  • 1,475
  • 1
  • 20
  • 35
  • 1
    Been done before. It's not a bad idea when it's a custom app intended to splve a specific problem for a certain person/company. Do you really need it to be a webapp ? – nos Jun 29 '09 at 20:54
  • 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. What's the best way?'. Or better: I want to do such-and-such, is Excel a better platform than the web? We could (I couldn't, actually) discuss that. – Adriano Varoli Piazza Jun 29 '09 at 21:04

11 Answers11

12

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
  • 59,820
  • 9
  • 127
  • 177
  • 1
    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 Jun 29 '09 at 20:52
  • 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 Jun 29 '09 at 21:00
  • 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 Jun 29 '09 at 21:03
12

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
  • 16,759
  • 9
  • 63
  • 107
  • The question here is: is the job which Chris wants to do not intended for Excel? – Adriano Varoli Piazza Jun 29 '09 at 21:06
  • It's now 2014. Would you say that with the latest version the quality has improved or not? – Emmanuel Mar 25 '14 at 14:22
  • 1
    @Emmanuel, I would say there has been little improvement. I still have to maintain and update some large VBA projects, and it's still more hassle than it's worth. VBA is great for small to medium tasks, but it has definite limits. – Stewbob Mar 25 '14 at 17:39
3

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
  • 31,943
  • 5
  • 40
  • 57
2

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
  • 9,930
  • 3
  • 42
  • 46
1

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
  • 4,275
  • 2
  • 20
  • 20
  • 1
    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 Jun 29 '09 at 20:50
  • 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 Jun 29 '09 at 20:51
  • 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 Jun 29 '09 at 21:02
1

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
  • 295,876
  • 54
  • 310
  • 348
1

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
  • 36,094
  • 53
  • 157
  • 237
  • 1
    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 Jun 29 '09 at 20:54
1

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

criddell
  • 14,289
  • 9
  • 41
  • 45
1

+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
  • 189,189
  • 101
  • 473
  • 713
1

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.

IAdapter
  • 62,595
  • 73
  • 179
  • 242
0

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
  • 238
  • 1
  • 3