Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I'm working on an application that is going to replace a rather large spreadsheet. The spreadsheet is used to budget purchases and things like that. It is the largest spreadsheet I have ever seen, and it required a lot of manual data entry, so this application is going to automate much of that.

But as I'm working on this I've noticed its slow going. And I got to thinking this must be a common thing to do many companies will start with something like a spreadsheet, then when they get too big to maintain that, they will get a custom application built. So is there anything out there ( a framework or similar ) that does this sort of thing, migrating a spreadsheet to a custom application.

I've had a quick Google but not really seen the kind of thing that I'm looking for.

It's too late for this project, but I thought it would be worth having a look for next time.

How do you guys tackle this problem?

share|improve this question
I have a friend who does this and he wrote his own custom tool for pulling the formulas out of the cells and converting them to C#. – Tangurena Jan 18 '12 at 0:25
Lol, Wall Street runs on spreadsheet ... and bullshit. – Job Jan 18 '12 at 3:40
You must determine why the spreadsheet is not working for this company. What are the advantages of creating an application to replace it? Is the business requirements mature enough to be hard coded in an application? Does your user understand the cost involved in changing looks and functionality when data is 'trapped' by an application? Be very careful answering such question from the user view point. – NoChance Jan 18 '12 at 10:25
up vote 3 down vote accepted

Spreadsheets are hard to replace because they are very much free-form. Replacing them is only marginally better than replacing a "paper and pencil application": in both cases, you will be writing an application pretty much from scratch.

My strategy would be to interview the key users of the spreadsheet, and find out how they use it to get the results that they need. Pay special attention when the users talk about modifying excel formulas: these are potential targets of customization in your future application.

I imagine there would be many kinds of results that they might expect from the mother-of-all-spreadsheets behemoth, so have them prioritize the things that they are looking to get from your application. Agree on a small subset of the features that would provide a complete end-to-end user experience, and start building. Show your work to your end users, gather feedback, and keep adding new features until your users are satisfied.

share|improve this answer
+1. Anything like this is essentially starting from scratch. As a massive spreadsheet grows and develops, features just keep being tacked on without looking at the bigger picture. Likely many users contributed small pieces without any single user understanding the whole thing. There's likely huge opportunities to improve the design, but you'll have to be very careful to gain the users' acceptance... – bunglestink Jan 18 '12 at 5:42

I'm pretty sure this is easiest to do in the .NET framework.

Found on Component for Fast Pass/Retrieve Data from Excel

Gembox has some proprietary software for doing this, and a free version here.

You may also want to look into COM Interop.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.