How to port Excel applications to the Web?
January 29, 2011 1:50 PM   Subscribe

What would be the best technology to port simple Excel-based applications to the web?

Some of my clients would like to create small applications to give to their customers. These apps are simple calculators that take user input and return values and charts. These sorts of apps are typically Excel-based as users are business people who have Excel, and are simple enough to be created by non-programmers: an input grid + reference data tables + formulas and buttons with some minimal VBA. However, it makes sense today to port these apps to the web, making them Excel-free, platform-agnostic and available to anyone with an internet access. It would also ensure that users have always the latest version (the reference data and equations change regularly).

What would be the best technology / framework to port such applications to the web? "Best" means:
- as universal as possible and likely to exist in the long run
- easy to develop and maintain, ideally by non-programmers
- not requiring additional actions from the users, such as (unusual) plug-in downloads or sign-ins
- not requiring license fees to disseminate

One good thing with the Excel apps is that users can create and keep their own data scenarios (just by saving the file). Another is that the underlying equations, reference data or output (chart type for instance) can be modified easily by the app creator. We'd like to keep these features in the web version, though sacrifices can be made.

Ideally, it would be something as easy to use, develop and maintain as the Excel versions, but on-line and platform-independent. Server-side technology would be OK since traffic would be very low. I'll hire professional developers if necessary, but I need some pointers to be able to understand the pros and cons of the various technologies in order to write specifications that make sense.
posted by elgilito to Computers & Internet (11 answers total) 2 users marked this as a favorite
Not to be a shill for MS, Sharepoint might be an option as a way to do this. In my last company we used it to do the same type of thing (via company intranet, but MOSS can be outside the firewall, too). Users would be presented with a spreadsheet like form to enter date (or copy/paste from a local copy of Excel) and push a button to send the data to the mothership (the data itself goes into an MSSQL database). After that there would be the ability to do some basic charting. Also, MS seems to be trying to enable some of this in Office 2010, but I haven't played with it in a corporate environment yet.

Because I'm not a shill for MS, you may want to go down the path of using Google apps if the spreadsheets aren't using functions/vba tricks that can't be done with Google spreadsheets. Depending on the number of users and other circumstances this would be cheaper (and maybe free to end users) to manage. I think some of the Office 2010 web/cloudy stuff is dependent on the clients having the latest version too. And there's a million reasons why many of your clients may still be on 2007 or 2003 and not ready to upgrade. That's speculation but it fits nicely in the MS model (they're putting stuff on the cloud to sell more client licenses, not to give people excuses not to upgrade)
posted by birdherder at 2:03 PM on January 29, 2011

Not sure about buttons and vba, but I think Google Docs might be a near perfect solution.
posted by pyro979 at 2:04 PM on January 29, 2011

Excel is a pretty complex piece of software and it would be suicide to try to offer all of its functionality. But if you define your requirements conservatively, you could hire people to develop a faily basic web application using, say, PHP, MySQL and JavaScript. There are tons of programming libraries you can use to create beautiful user interfaces with fancy charts and what not. But again, depending on how complex the logic of your apps are, it might not be worth the effort trying to create an Excel clone.
posted by Foci for Analysis at 2:16 PM on January 29, 2011

Depending on what you're doing, the Excel Web App is for exactly this. You could take your existing Excel worksheets and make them available to the people you wanted to use them.
posted by anildash at 3:50 PM on January 29, 2011

Thanks for the answers. I just had a look at Google Docs and MS Web Apps and they don't seem to fit the bill, unfortunately. They're collaborative tools, that allow trusted people to share a document, edit it and save the changes for other trusted users to see them, but the "web application" part is limited. You can't protect individual cells for instance, which is pretty much a no-no in our case, and in any case we don't want users to share the saved changes. We really need a basic web app, and the question is about the simplest/cheapest/most durable way to do that among the many options available: Java, Javascript+friends, Flash, Silverlight, HMTL5, Perl etc.
posted by elgilito at 2:42 AM on January 30, 2011

Skip java (too enterprise-y), flash (proprietary), silverlight (proprietary), Perl. The most reasonable options are PHP, Python, Ruby.

Also, just javascript and html (5 or not) will probably not be enough. You will need server technology.
posted by Foci for Analysis at 5:11 AM on January 30, 2011

Google docs can certainly be used as a collaborative tool, but can also be used in the way you want. You can "publish" a partially filled in spreadsheet as read-only which can be downloaded by your users who can then fill in their own data which will be used to locally calculate values based on the formulas embedded in the document. I have used such spread sheets in the past.

Or skip google docs and let your users just download the partially filled in Excel pages to complete.
posted by Obscure Reference at 6:24 AM on January 30, 2011

Or skip google docs and let your users just download the partially filled in Excel pages to complete.

Well, that's what is done now. The idea is to skip Excel, partly to prevent compatibility issues (people with really outdated versions or unable to run the macros for some reason) and partly to force users to run the latest version of the calculator (the reference data are updated on a regular basis). In any case I just tested downloading the Google spreadsheet: the formulas are kept in the file (good) but not the charts or the data validation rules (bad).
posted by elgilito at 7:20 AM on January 30, 2011


What you are describing may or may not be a 'simple' web app at all. Before going much further, start thinking about what you are going to allow, and what ones you are going to forbid. Without a (draft) spec or design document, it's really quite hard to evaluate whether this is 'easy' or not. From what I am hearing, it doesn't sound simple at all.

As others are saying, excel is extremely complicated and powerful, so 'replacing it' isn't easy. From what I am hearing of your user stories in this thread:

* you are worried about users having outdated data / formulas
* you want to keep the data and equations secret. (how were they secret before, when it was in excel?)

Are these real concerns? Hypothetical? Hearing this is sounds like you have settled on a solution without really explaining the process for choosing it. A solution to the 'outdated' problem might be to have vba code that checks your website for updated versions when the functions run, for example.
posted by gregglind at 7:32 AM on January 30, 2011

I'll add that just like Google Docs can be used in this way, SharePoint + Excel can be used to present a read only UI that let's people type in parameterized values and get back charts and the results of calculations. All of this can be done without exposing the guts of the underlying Excel spreadsheet.

The web experience of Excel in this way is no where near the breadth of the capabilities of client Excel so you should go into this with open eyes but it is a possibility.
posted by mmascolino at 8:32 AM on January 30, 2011

What you are describing may or may not be a 'simple' web app at all
That's the basic problem here. The Excel versions are 'simple', i.e. non-developers can easily port the business logic into Excel. Developing web versions less so, so I was asking for pointers. So right now it's either using Excel as usual (with compatibility and updating issues) or finding a general framework to create such applications on the web.

you want to keep the data and equations secret
No secret here actually. It's just that people shouldn't accidentally write in those cells and erase the contents... My experience with this sort of Excel applications is that it's simple for everyone if users can input data without risking to break stuff. Google Docs would be perfect in fact, if not for that pesky problem of users (in write mode) being able to erase/replace everything and save it.
The outdating issue is more complex. I know it's feasible with VBA but I'm not very keen on having a piece of code "phoning home" since we don't know beforehand what is allowed at the user's workplace. Of course workplace restrictions could exist with web applications too (folks using IE6 only etc.).

Sorry I wasn't more exhaustive in my summary, but AskMe questions are a difficult balancing act! I'll look again at Google Docs and Excel Web Apps anyway, it's already useful to know that people are using them for similar projects.
posted by elgilito at 8:55 AM on January 30, 2011

« Older Can you help me improve my graphic design...   |   Alaska fishing trip advice needed. Newer »
This thread is closed to new comments.