Ecosyste.ms: Repos
An open API service providing repository metadata for many open source software ecosystems.
Package Usage: rubygems: excel_to_code
# Excel to Code
[![Tests Passing](https://travis-ci.org/tamc/excel_to_code.svg?branch=master)](https://travis-ci.org/tamc/excel_to_code)
excel_to_c - roughly translate some Excel files into C.
excel_to_ruby - roughly translate some Excel files into Ruby.
This allows spreadsheets to be:
1. Embedded in other programs, such as web servers, or optimisers
2. Without depending on any Microsoft code
For example, running [these commands](examples/simple/compile.sh) turns [this spreadsheet](examples/simple/simple.xlsx) into [this Ruby code](examples/simple/ruby/simple.rb) or [this C code](examples/simple/c/simple.c).
# Install
Requires Ruby. Install by:
gem install excel_to_code
# Run
To just have a go:
excel_to_c <excel_file_name>
This will produce a file called excelspreadsheet.c
For a more complex spreadsheet:
excel_to_c --compile --run-tests --settable <name of input worksheet> --prune-except <name of output worksheet> <excel file name>
See the full list of options:
excel_to_c --help
# Gotchas, limitations and bugs
0. No custom functions, no macros for generating results
1. Results are cached. So you must call reset(), then set values, then read values.
2. 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.
3. Doesn't implement all functions. [See which functions are implemented](docs/Which_functions_are_implemented.md).
4. Doesn't implement references that involve range unions and lists (but does implement standard ranges)
5. Sometimes gives cells as being empty, when excel would give the cell as having a numeric value of zero
6. The generated C version does not multithread and will give bad results if you try.
7. The generated code uses floating point, rather than fully precise arithmetic, so results can differ slightly.
8. The generated code uses the sprintf approach to rounding (even-odd) rather than excel's 0.5 rounds away from zero.
9. Ranges like this: Sheet1!A10:Sheet1!B20 and 3D ranges don't work.
Report bugs: <https://github.com/tamc/excel_to_code/issues>
# Changelog
See [Changes](CHANGES.md).
# License
See [License](LICENSE.md)
# Hacking
Source code: <https://github.com/tamc/excel_to_code>
Documentation:
* [Installing from source](docs/installing_from_source.md)
* [Structure of this project](docs/structure_of_this_project.md)
* [How does the calculation work](docs/how_does_the_calculation_work.md)
* [How to fix parsing errors](docs/How_to_fix_parsing_errors.md)
* [How to implement a new Excel function](docs/How_to_add_a_missing_function.md)
Some notes on how Excel works under the hood:
* [The Excel file structure](docs/implementation/excel_file_structure.md)
* [Relationships](docs/implementation/relationships.md)
* [Workbooks](docs/implementation/workbook.md)
* [Worksheets](docs/implementation/worksheets.md)
* [Cells](docs/implementation/cell.md)
* [Tables](docs/implementation/tables.md)
* [Shared Strings](docs/implementation/shared_strings.md)
* [Array formulae](docs/implementation/array_formulae.md)
78 versions
Latest release: over 2 years ago
3 dependent packages
207,100 downloads total
View more package details: https://packages.ecosyste.ms/registries/rubygems.org/packages/excel_to_code
View more repository details: https://repos.ecosyste.ms/hosts/GitHub/repositories/tamc%2Fexcel_to_code
Dependent Repos 16
ronakjain90/tamilnadu-energy-calculator 📦
- >= 0.3.16 Gemfile
- 0.3.19 Gemfile.lock
Size: 75.8 MB - Last synced: about 1 year ago - Pushed: about 2 years ago
bd2050/twenty-fifty
- ~> 0.3 Gemfile
- 0.3.5 Gemfile.lock
Size: 19.8 MB - Last synced: about 1 year ago - Pushed: about 9 years ago
decc/turn_decc_2050_model_into_web_pages
A quick script that (sort of) turns the decc 2050 model excel into web pages- >= 0 Gemfile
- 0.1.2 Gemfile.lock
Size: 105 KB - Last synced: about 2 months ago - Pushed: over 11 years ago
decc/belgium_2050_model
The 2050 Model for Belgium- = 0.1.20 Gemfile
- 0.1.20 Gemfile.lock
- >= 0 belgium_2050_model.gemspec
Size: 98.7 MB - Last synced: 7 days ago - Pushed: over 10 years ago
decc/twenty-fifty
The old web front end to the DECC 2050 Pathways Calculator Excel Model. The new code is at https://github.com/decc/twenty-fifty-new-look. See the old code working at: http://old-interface.2050.org.uk- ~> 0.3 Gemfile
- 0.3.17 Gemfile.lock
Size: 215 MB - Last synced: about 2 months ago - Pushed: about 1 year ago
tamc/ukfairshare
- = 0.1.6 Gemfile
Size: 750 KB - Last synced: about 1 year ago - Pushed: almost 11 years ago
iept/test-2047-calculator
India 2047 Energy Calculator- = 0.1.20 india_2052_model/Gemfile
- >= 0 india_2052_model/model.gemspec
Size: 61.6 MB - Last synced: 10 months ago - Pushed: over 10 years ago
kubid/esdm
Calculator2050 esdm pathway- ~> 0.3 Gemfile
- 0.3.14 Gemfile.lock
Size: 332 MB - Last synced: over 1 year ago
decc/global-calculator
The source code to the web interface to the Global Calculator- >= 0 Gemfile
- 0.3.9 Gemfile.lock
Size: 61.1 MB - Last synced: about 2 months ago - Pushed: over 1 year ago
tamc/alt-glob-calc
- ~> 0.3 Gemfile
- 0.3.2 Gemfile.lock
Size: 72.1 MB - Last synced: about 1 year ago - Pushed: over 9 years ago
kubid/papua_calculator
- ~> 0.3 Gemfile
- 0.3.14 Gemfile.lock
Size: 215 MB - Last synced: over 1 year ago
decc/decc_2050_model
Extracted the compiled version of the 2050 model from the web front end- = 0.2.19 Gemfile
- 0.2.19 Gemfile.lock
- >= 0 model.binary.gemspec
- >= 0 model.gemspec
Size: 166 MB - Last synced: 7 days ago - Pushed: almost 10 years ago
decc/global_2050_model
A c version of the prototype global 2050 model- >= 0 Gemfile
- 0.3.10 Gemfile.lock
- >= 0 global_2050_model.gemspec
- >= 0 global_2050_model_binary.gemspec
Size: 900 MB - Last synced: about 2 months ago - Pushed: over 9 years ago
tamc/excel_to_code
Roughly translate some Excel spreadsheets to Ruby or C.- 0.3.19 Gemfile.lock
Size: 14.4 MB - Last synced: 5 days ago - Pushed: 6 months ago
iept/iess2047
India Energy Security Scenarios 2047 Source Code- = 0.2.3 india_2052_model/Gemfile
- 0.2.3 india_2052_model/Gemfile.lock
- >= 0 india_2052_model/model.gemspec
Size: 38.9 MB - Last synced: 10 months ago - Pushed: about 9 years ago
milanariga/twenty-fifty Fork of decc/twenty-fifty
The old web front end to the DECC 2050 Pathways Calculator Excel Model. The new code is at https://github.com/decc/twenty-fifty-new-look. See the old code working at: http://old-interface.2050.org.uk- ~> 0.3 Gemfile
- 0.3.17 Gemfile.lock
Size: 231 MB - Last synced: about 1 year ago - Pushed: over 1 year ago
peterjacobson/twenty-fifty Fork of decc/twenty-fifty
The old web front end to the DECC 2050 Pathways Calculator Excel Model. The new code is at https://github.com/decc/twenty-fifty-new-look. See the old code working at: http://old-interface.2050.org.uk- ~> 0.3 Gemfile
- 0.3.14 Gemfile.lock
Size: 216 MB - Last synced: 10 months ago - Pushed: almost 9 years ago
tamc/calculator-workshop-live
- >= 0 Gemfile
- 0.3.19 Gemfile.lock
Size: 44.9 KB - Last synced: about 1 year ago - Pushed: almost 4 years ago
ronz94/iess2047 Fork of Mr-Kumar-Abhishek/iess2047
India Energy Security Scenarios 2047 Source Code- = 0.2.3 india_2052_model/Gemfile
- 0.2.3 india_2052_model/Gemfile.lock
- >= 0 india_2052_model/model.gemspec
Size: 38.9 MB - Last synced: about 1 year ago - Pushed: about 9 years ago
jmptrader/twenty-fifty Fork of pnudColombia/twenty-fifty
A web front end to the DECC 2050 Pathways Calculator Excel Model- ~> 0.3 Gemfile
- 0.3.2 Gemfile.lock
Size: 322 MB - Last synced: about 1 year ago - Pushed: almost 9 years ago
iept/iess_v2
- >= 0.3.16 Gemfile
- 0.3.17 Gemfile.lock
Size: 64.9 MB - Last synced: 10 months ago - Pushed: over 8 years ago
uk-gov-mirror/decc.decc_2050_model Fork of decc/decc_2050_model
Extracted the compiled version of the 2050 model from the web front end- = 0.2.19 Gemfile
- 0.2.19 Gemfile.lock
- >= 0 model.binary.gemspec
- >= 0 model.gemspec
Size: 166 MB - Last synced: about 1 year ago - Pushed: almost 10 years ago
uk-gov-mirror/decc.belgium_2050_model Fork of decc/belgium_2050_model
The 2050 Model for Belgium- = 0.1.20 Gemfile
- 0.1.20 Gemfile.lock
- >= 0 belgium_2050_model.gemspec
Size: 98.7 MB - Last synced: about 1 year ago - Pushed: over 10 years ago
uk-gov-mirror/decc.turn_decc_2050_model_into_web_pages Fork of decc/turn_decc_2050_model_into_web_pages
A quick script that (sort of) turns the decc 2050 model excel into web pages- >= 0 Gemfile
- 0.1.2 Gemfile.lock
Size: 105 KB - Last synced: about 1 year ago - Pushed: over 11 years ago
uk-gov-mirror/decc.electricity-build-rate-constraint Fork of decc/electricity-build-rate-constraint
A doodle on electricity build rate constraints do not trust or use yet- >= 0 Gemfile
- 0.1.11 Gemfile.lock
Size: 41.3 MB - Last synced: about 1 year ago - Pushed: over 10 years ago
uk-gov-mirror/decc.iess2047 Fork of decc/iess2047
India Energy Security Scenarios 2047 Source Code- = 0.2.3 india_2052_model/Gemfile
- 0.2.3 india_2052_model/Gemfile.lock
- >= 0 india_2052_model/model.gemspec
Size: 45.6 MB - Last synced: about 1 year ago - Pushed: about 9 years ago
uk-gov-mirror/decc.global_2050_model Fork of decc/global_2050_model
A c version of the prototype global 2050 model- >= 0 Gemfile
- 0.3.10 Gemfile.lock
- >= 0 global_2050_model.gemspec
- >= 0 global_2050_model_binary.gemspec
Size: 900 MB - Last synced: about 1 year ago - Pushed: over 9 years ago
decc/electricity-build-rate-constraint
A doodle on electricity build rate constraints do not trust or use yet- >= 0 Gemfile
- 0.1.11 Gemfile.lock
Size: 41.3 MB - Last synced: about 2 months ago - Pushed: over 10 years ago
icf2017/AP-State-Energy-Calculator
- >= 0.3.16 Gemfile
- 0.3.17 Gemfile.lock
Size: 35.8 MB - Last synced: about 1 year ago - Pushed: over 6 years ago
sanpi0205/decc_2050_model Fork of decc/decc_2050_model
Extracted the compiled version of the 2050 model from the web front end- = 0.2.19 Gemfile
- 0.2.19 Gemfile.lock
- >= 0 model.binary.gemspec
- >= 0 model.gemspec
Size: 166 MB - Last synced: about 1 year ago - Pushed: almost 10 years ago
icf2017/Assam-State-Energy-Calculator
- >= 0.3.16 Gemfile
- 0.3.17 Gemfile.lock
Size: 50 MB - Last synced: about 1 year ago - Pushed: over 6 years ago
icf2017/maharastra_calculator
- >= 0.3.16 Gemfile
- 0.3.17 Gemfile.lock
Size: 137 MB - Last synced: about 1 year ago - Pushed: over 5 years ago
icf2017/Assam_Update-31Oct2018
- >= 0.3.16 assam/Gemfile
- 0.3.17 assam/Gemfile.lock
Size: 70.4 MB - Last synced: about 1 year ago - Pushed: over 5 years ago
Mr-Kumar-Abhishek/iess2047 Fork of iept/iess2047
India Energy Security Scenarios 2047 Source Code- = 0.2.3 india_2052_model/Gemfile
- 0.2.3 india_2052_model/Gemfile.lock
- >= 0 india_2052_model/model.gemspec
Size: 45.5 MB - Last synced: about 1 year ago - Pushed: over 8 years ago
Mr-Kumar-Abhishek/test-2047-calculator Fork of iept/test-2047-calculator
India 2047 Energy Calculator- = 0.1.20 india_2052_model/Gemfile
- >= 0 india_2052_model/model.gemspec
Size: 57.1 MB - Last synced: about 1 year ago - Pushed: over 8 years ago
michaeljbishop/global-calculator Fork of decc/global-calculator
The source code to the web interface to the Global Calculator (not quite ready for launch)- >= 0 Gemfile
- 0.3.9 Gemfile.lock
Size: 60.8 MB - Last synced: about 1 year ago - Pushed: over 8 years ago
icf2017/Gujarat-State-Energy-Calculator
- >= 0.3.16 Gemfile
- 0.3.17 Gemfile.lock
Size: 30.3 MB - Last synced: about 1 year ago - Pushed: over 6 years ago
tur-ium/global-calculator Fork of decc/global-calculator
The source code to the web interface to the Global Calculator- >= 0 Gemfile
- 0.3.9 Gemfile.lock
Size: 61.1 MB - Last synced: 10 months ago - Pushed: almost 4 years ago
HiroShirakawa/twenty-fifty Fork of decc/twenty-fifty
A web front end to the DECC 2050 Pathways Calculator Excel Model- >= 0 Gemfile
- 0.2.29 Gemfile.lock
Size: 174 MB - Last synced: 9 months ago - Pushed: about 8 years ago
segun-ecn/necal2050
Nigeria Energy and Emission 2050 Calculator- ~> 0.3 Gemfile
- 0.3.2 Gemfile.lock
Size: 60.4 MB - Last synced: about 1 year ago - Pushed: almost 8 years ago
cromlyngames/twenty-fifty Fork of bd2050/twenty-fifty
- ~> 0.3 Gemfile
- 0.3.5 Gemfile.lock
Size: 19.8 MB - Last synced: 9 months ago - Pushed: about 9 years ago