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?

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

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.

  • 1
    +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 codeproject.com: 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.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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