I did a project a while back where an Excel app was querying an Oracle database, the original spreadsheet had 100K rows or more and took over 6 hours to process its calculations. By pulling out the macro style code and recorded code, and of course reducing the amount of row data I managed to get it down to a more acceptable 2 to 4 minutes (huge amounts of data to analyse). Back then there was no such thing as datasets and linq, ado and odbc direct calls were the go.
Did not need to go to .Net as Excel has VBA, and great support for array handling etc. and is fast if you do it right. SQL, depending on what the calcs are, will also assist in a lot of processing, So, you may get away with not having to code in a separate .Net app. This will make it easier for distribution. - Stuart On 28 March 2014 18:03, Stephen Price <[email protected]> wrote: > Hey all, > > Wondering if anyone has taken a spreadsheet and turned it into an app > before? > > This spreadsheet has lots of data that used the previous row to calculate > the new row's data (as spreadsheets often do). Was wondering how the best > way to duplicate that functionality in a .Net app with classes/database. > > Possible ways I've thought of; > 1. Class that calculates on the fly the desired row/year of data each time > it needs it. > > 2. The spreadsheet takes some starting values and the applies a formula to > each row, could do the same thing in memory in a lookup dictionary or > similar so it only needs to be done once. > > 3. Alternatively put that data into tables in database... downside, if the > initial value is changed it would have to find and modify the appropriate > rows in the database. > > other ways? > > cheers, > Stephen > > > -- ----------------------------------------------------------------------------- Stuart Kinnear Mobile: 040 704 5686. Office: 03 9589 6502 SK Pro-Active! Pty Ltd acn. 81 072 778 262 PO Box 6082 Cromer, Vic 3193. Australia Business software developers. SQL Server, Visual Basic, C# , Asp.Net, Microsoft Office. -----------------------------------------------------------------------------
