{"id":13858697,"url":"https://github.com/tamc/excel_to_code","last_synced_at":"2025-04-12T23:42:28.983Z","repository":{"id":2159247,"uuid":"3104837","full_name":"tamc/excel_to_code","owner":"tamc","description":"Roughly translate some Excel spreadsheets to Ruby or C.","archived":false,"fork":false,"pushed_at":"2023-11-22T15:01:37.000Z","size":15053,"stargazers_count":228,"open_issues_count":10,"forks_count":29,"subscribers_count":15,"default_branch":"master","last_synced_at":"2025-04-12T23:42:22.920Z","etag":null,"topics":["c","excel","ruby","spreadsheet"],"latest_commit_sha":null,"homepage":"","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tamc.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGES.md","contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2012-01-04T19:54:44.000Z","updated_at":"2025-03-13T19:36:16.000Z","dependencies_parsed_at":"2024-06-18T19:56:45.335Z","dependency_job_id":"8bf2f220-3669-4570-8f1e-1ead6a863e66","html_url":"https://github.com/tamc/excel_to_code","commit_stats":{"total_commits":1169,"total_committers":6,"mean_commits":"194.83333333333334","dds":"0.16424294268605644","last_synced_commit":"5ea16cac9b46ef4efac3a16cf5ccbddcbe003e49"},"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tamc%2Fexcel_to_code","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tamc%2Fexcel_to_code/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tamc%2Fexcel_to_code/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tamc%2Fexcel_to_code/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tamc","download_url":"https://codeload.github.com/tamc/excel_to_code/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248647257,"owners_count":21139081,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["c","excel","ruby","spreadsheet"],"created_at":"2024-08-05T03:02:17.883Z","updated_at":"2025-04-12T23:42:28.962Z","avatar_url":"https://github.com/tamc.png","language":"Ruby","readme":"# Excel to Code\n\n[![Tests Passing](https://travis-ci.org/tamc/excel_to_code.svg?branch=master)](https://travis-ci.org/tamc/excel_to_code)\n\nexcel_to_c - roughly translate some Excel files into C.\n\nexcel_to_ruby - roughly translate some Excel files into Ruby.\n\nThis allows spreadsheets to be:\n\n1. Embedded in other programs, such as web servers, or optimisers\n2. Without depending on any Microsoft code\n\nFor 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).\n\n# Install\n\nRequires Ruby. Install by:\n\n    gem install excel_to_code\n\n# Run\n\nTo just have a go:\n\n\texcel_to_c \u003cexcel_file_name\u003e\n\nThis will produce a file called excelspreadsheet.c\n\nFor a more complex spreadsheet:\n\t\n\texcel_to_c --compile --run-tests --settable \u003cname of input worksheet\u003e --prune-except \u003cname of output worksheet\u003e \u003cexcel file name\u003e \n\t\nSee the full list of options:\n\n\texcel_to_c --help\n\n# Gotchas, limitations and bugs\n\n0. No custom functions, no macros for generating results\n1. Results are cached. So you must call reset(), then set values, then read values.\n2. It must be possible to replace INDIRECT and OFFSET formula with standard references at compile time (e.g., INDIRECT(\"A\"\u0026\"1\") is fine, INDIRECT(userInput\u0026\"3\") is not.\n3. Doesn't implement all functions. [See which functions are implemented](docs/Which_functions_are_implemented.md).\n4. Doesn't implement references that involve range unions and lists (but does implement standard ranges)\n5. Sometimes gives cells as being empty, when excel would give the cell as having a numeric value of zero\n6. The generated C version does not multithread and will give bad results if you try.\n7. The generated code uses floating point, rather than fully precise arithmetic, so results can differ slightly.\n8. The generated code uses the sprintf approach to rounding (even-odd) rather than excel's 0.5 rounds away from zero.\n9. Ranges like this: Sheet1!A10:Sheet1!B20 and 3D ranges don't work.\n\nReport bugs: \u003chttps://github.com/tamc/excel_to_code/issues\u003e\n\n# Changelog\n\nSee [Changes](CHANGES.md).\n\n# License\n\nSee [License](LICENSE.md)\n\n# Hacking\n\nSource code: \u003chttps://github.com/tamc/excel_to_code\u003e\n\nDocumentation:\n\n* [Installing from source](docs/installing_from_source.md)\n* [Structure of this project](docs/structure_of_this_project.md)\n* [How does the calculation work](docs/how_does_the_calculation_work.md)\n* [How to fix parsing errors](docs/How_to_fix_parsing_errors.md)\n* [How to implement a new Excel function](docs/How_to_add_a_missing_function.md)\n\nSome notes on how Excel works under the hood:\n\n* [The Excel file structure](docs/implementation/excel_file_structure.md)\n* [Relationships](docs/implementation/relationships.md)\n* [Workbooks](docs/implementation/workbook.md)\n* [Worksheets](docs/implementation/worksheets.md)\n* [Cells](docs/implementation/cell.md)\n* [Tables](docs/implementation/tables.md)\n* [Shared Strings](docs/implementation/shared_strings.md)\n* [Array formulae](docs/implementation/array_formulae.md)\n\n","funding_links":[],"categories":["Ruby"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftamc%2Fexcel_to_code","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftamc%2Fexcel_to_code","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftamc%2Fexcel_to_code/lists"}