Excel to Code
exceltoc - roughly translate some Excel files into C.
exceltoruby - roughly translate some Excel files into Ruby.
This allows spreadsheets to be:
- Embedded in other programs, such as web servers, or optimisers
- Without depending on any Microsoft code
For example, running these commands turns this spreadsheet into this Ruby code or this C code.
Requires Ruby. Install by:
gem install excel_to_code
To just have a go:
This will produce a file called excelspreadsheet.c
For a more complex spreadsheet:
excel_to_c --compile --run-tests --settable --prune-except
See the full list of options:
Gotchas, limitations and bugs
- No custom functions, no macros for generating results
- Results are cached. So you must call reset(), then set values, then read values.
- It must be possible to replace INDIRECT and OFFSET formula with standard references at compile time (e.g., INDIRECT("A"&"1") is fine, INDIRECT(userInput&"3") is not.
- Doesn't implement all functions. See which functions are implemented.
- Doesn't implement references that involve range unions and lists (but does implement standard ranges)
- Sometimes gives cells as being empty, when excel would give the cell as having a numeric value of zero
- The generated C version does not multithread and will give bad results if you try.
- The generated code uses floating point, rather than fully precise arithmetic, so results can differ slightly.
- The generated code uses the sprintf approach to rounding (even-odd) rather than excel's 0.5 rounds away from zero.
- Ranges like this: Sheet1!A10:Sheet1!B20 and 3D ranges don't work.
Report bugs: https://github.com/tamc/excel_to_code/issues
Source code: https://github.com/tamc/excel_to_code
Some notes on how Excel works under the hood: