Code cruncher transforms Excel

TurboExcel turns spreadsheets into C++, making Excel a development tool

Whereas most of today’s software tools follow the “bigger is better” philosophy, Savvysoft’s TurboExcel proves the adage that great things really do come in small packages. TurboExcel converts Excel spreadsheet code into executable C++ code. That’s it, nothing more. Consequently, TurboExcel is but a few megabytes in size, making it easy to overlook without due consideration.

Once you’ve used TurboExcel, you may find that you simply can’t be without it. TurboExcel gives Excel developers the means to turn their favorite algorithms into portable DLL files by transforming Excel into a software development environment. Slow spreadsheets can be accelerated, and Excel developers can make their algorithms available to anyone whose application can hook up with DLLs.

Development in Excel

After installing TurboExcel, three new buttons appear on the Excel toolbar. The first is an icon for the newly installed product. To its right, the TurboExcel Configuration button opens a dialog to manage the details of the generated DLL and the function it will contain. For example, in the “input ranges” box, you enter the cell ranges (they can be noncontiguous) that will be treated as the function’s inputs. For each range designation, you also specify the data type (integer, floating point, text, etc.).

Another textbox in the dialog specifies the output range and data type. A TurboExcel-created function can produce either a single value or an array, with the sole restriction that an array must correspond to a contiguous array of cells.

Once you’ve entered all the configuration information, one click on the TurboExcel builder button converts the spreadsheet into C++ code, launches the compiler, and builds a native DLL file. It also creates the appropriate XLL file, which provides the necessary glue logic for using the DLL as an Excel add-in.

It takes just seconds to launch TurboExcel and test your new native function. Consider the minutes — or even hours — involved in rewriting, compiling, and testing an Excel algorithm that you hand-coded into C++, and it becomes clear that TurboExcel has the edge.

TurboExcel also saves the configuration input in a separate location in the spreadsheet. This makes it easy to cycle quickly through multiple compilations as you’re working the kinks out of your formula. You don’t have to keep re-entering the information in the configuration dialog; TurboExcel remembers it for you.

Note that the idea is not to turn TurboExcel loose on an entire spreadsheet. If you do that, TurboExcel digests the entire sheet, including the portions that have nothing to do with the formula you want converted. The key is to isolate those formulae that consume the most time, extract only the cells involved with the target formulae, put them in a separate spreadsheet, and convert from there.

After you’ve verified the converted function works correctly, you re-import it into the original spreadsheet as an add-in function. Because the function is now in a DLL, it can be called from any app that calls into DLLs.

Excel as IDE

TurboExcel basically turns Excel into a miniature programming environment. Some cells are inputs, others are outputs, and still others comprise the execution logic of your single-function “application.”

Excel used as an IDE might be useful, cells filled with numbers and formulae leave something to be desired as a complete programming language. It is cumbersome, if not impossible, to coax looping and decision structures from such a limited environment.

Here, VBA (Visual Basic for Applications) comes to the rescue. TurboExcel can also turn VBA into executable C++. Unfortunately, the TurboExcel documentation lists numerous limitations. For example, although you can convert functions, you cannot convert subs, which initially disappoints. Read on, though, and you find that the real value of converting VBA code is to provide the “spreadsheet programmer” with looping and decision-making mechanisms that would be impossible if unadulterated Excel were the only raw material available.

For optimal TurboExcel use, you must factor your spreadsheet into areas that are straightforward calculations and areas that involve complex decision-making. Using TurboExcel, you can then build separate executable modules of each, and reassemble the result into a newer, faster spreadsheet. If you’ve properly factored your spreadsheet, the modules you’ve created can be reused not only in other spreadsheets but called from any application that can call into a DLL.

Future Savvy

Currently, code produced by TurboExcel only runs on Windows. However, I was told by company officials that the generated code only employs a pair of Win32-specific calls that could easily be replaced with Unix-equivalents.

If TurboExcel does provide cross-compilation to Unix platforms (and I hope it will), then it might be possible to create native add-ins for Linux spreadsheets such as StarOffice. And of course, TurboExcel-produced shared library files could be called by other applications.

TurboExcel performs its duty with laser-beam accuracy, but the price is lofty. The Personal Edition is $999 and allows you to run the generated code only on the machine that created it. If you want to run the generated code on any machine, you’ll need to purchase the Professional Edition for $2999.

If these are introductory prices, I’m not sure I want to hear what the prices will be once the introduction is over, but I hope Savvysoft keeps the cost of TurboExcel within reach of all well-deserving Excel slingers.

InfoWorld Scorecard
Documentation (20.0%)
Interoperability (20.0%)
Ease of use (20.0%)
Capability (20.0%)
Setup (10.0%)
Value (10.0%)
Overall Score (100%)
TurboExcel 7.0 8.0 9.0 9.0 9.0 9.0 8.4