Categories
Reports & Spreadsheets
Tools for parsing spreadsheets and creating reports in multiple formats.
xlsx spreadsheet generation with charts, images, automated column width, customizable styles and full schema validation. Axlsx helps you create beautiful Office Open XML Spreadsheet documents ( Excel, Google Spreadsheets, Numbers, LibreOffice) without having to understand the entire ECMA specification. Check out the README for some examples of how easy it is. Best of all, you can validate your xlsx file before serialization so you know for sure that anything generated is going to load on your client's machine.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
Activity
As of version 0.6.0, only Microsoft Excel compatible spreadsheets are supported
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
Activity
Roo can access the contents of various spreadsheet files. It can handle
* OpenOffice
* Excelx
* LibreOffice
* CSV
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
Activity
xlsx spreadsheet generation with charts, images, automated column width, customizable styles and full schema validation. Axlsx helps you create beautiful Office Open XML Spreadsheet documents (Excel, Google Spreadsheets, Numbers, LibreOffice) without having to understand the entire ECMA specification. Check out the README for some examples of how easy it is. Best of all, you can validate your xlsx file before serialization so you know for sure that anything generated is going to load on your client's machine.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
Activity
0.95
Roo can access the contents of various spreadsheet files. It can handle
* OpenOffice
* Excel
* Google spreadsheets
* Excelx
* LibreOffice
* CSV
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
Popularity
Activity
Spreadsheet Architect is a library that allows you to create XLSX, ODS, or CSV spreadsheets easily from ActiveRecord relations, Plain Ruby classes, or predefined data.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
Activity
0.0
SpreadsheetGoodies is a collection of tools to help work with Excel and Google Drive spreadsheets. It relies on other gems to do the actual work of reading and writing to spreadsheet documents. It main features are:
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
Activity
0.0
Aggregates data from multiple spreadsheets into CSV or SQL output
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
Activity
0.1
# 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)
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
Activity
0.0
Zz structures are an interesting way of representing relations invented by Ted Nelson, whose domain model I provide in a gem Yzz. In this gem, YNelson, I combine Yzz with the universal Petri net provided by YPetri (another gem I wrote) to obtain a hybrid data structure that formalizes and generelizes a spreadsheet. Because let us note spreadsheets (as I have seen them) can be considered Petri nets of a kind, with cell functions acting as Petri net transitions. At the same time, spreadsheets are globally orthogonal structures with 3 typical dimensions (rows, columns and sheets). By using zz structures, the globally orthogonal spreadsheet is generalized as a locally orthogonal zz structure, with relations represented as zz dimensions, thus generalizing and formalizing a spreadsheet. The catch is that I have not yet finished the thinking process regarding what everything should be a zz object: Places (cells) and transitions definitely yes, but how about nets and dimensions? Should YNelson go as far as making namespaces into zz objects? The reason why these questions are hard to answer is because Ted Nelson himself, while providing interfaces guidelines (zz structure views, cursors...) did not comment on these questions. While being a (textual) DSL, YNelson aims to provide convenience on par with actual spreadsheet apps. Unlike YPetri, YNelson also aims to be able to specify more than one Petri net node per command, but this is still under development. See the user guide and the documentation for the details. YNelson documentation is available online, but due to formatting issues, you may prefer to generate the documentation on your own by running rdoc in the gem directory. For an example of how YPetri can be used to model complex dynamical systems, see the eukaryotic cell cycle model which I released as "cell_cycle" gem.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
Caxlsx_Rails provides an Caxlsx renderer so you can move all your spreadsheet code from your controller into view files. Partials are supported so you can organize any code into reusable chunks (e.g. cover sheets, common styling, etc.) You can use it with acts_as_caxlsx, placing the to_xlsx call in a view and adding ':package => xlsx_package' to the parameter list. Now you can keep your controllers thin!
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
Activity
Axlsx_Rails provides an Axlsx renderer so you can move all your spreadsheet code from your controller into view files. Partials are supported so you can organize any code into reusable chunks (e.g. cover sheets, common styling, etc.) You can use it with acts_as_xlsx, placing the to_xlsx call in a view and adding ':package => xlsx_package' to the parameter list. Now you can keep your controllers thin!
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
Activity
0.0
This library adds spreadsheet-centric jobs to the Burner library. Burner does not ship with non-CSV spreadsheet jobs out of the box.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
Activity
0.01
xlsx spreadsheet generation with charts, images, automated column width, customizable styles and full schema validation. Axlsx helps you create beautiful Office Open XML Spreadsheet documents ( Excel, Google Spreadsheets, Numbers, LibreOffice) without having to understand the entire ECMA specification. Check out the README for some examples of how easy it is. Best of all, you can validate your xlsx file before serialization so you know for sure that anything generated is going to load on your client's machine.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
0.0
WebGet spreadsheet_import_export_helpers gem: parsers and prettifiers for spreadsheets
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
Activity
0.0
Google Spreadsheet-related job classes for Bricolage batch framework
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
0.0
Dump databases to Google SpreadSheets and can also from SpreadSheets.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
0.02
Soroban makes it easy to extract and execute formulas from Excel spreadsheets. It rewrites Excel formulas as Ruby expressions, and allows you to bind named variables to spreadsheet cells to easily manipulate inputs and capture outputs.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
Activity
0.01
# DECC 2050 CALCULATOR TOOL
A C version and ruby wrapper for the www.decc.gov.uk 2050 energy and climate change excel calculator
Further detail on the project:
http://www.decc.gov.uk/2050
Canonical source:
http://github.com/decc/decc_2050_model
## DEPENDENCIES
1. ruby 1.9.2 (including development headers)
2. basic c development headers
This has ONLY been tested on OSX and on Ubuntu 64 bit EC2 ami.
Grateful for reports from other platforms.
In the util folder there is an example script that creates a new EC2 EMI, installs all the dependencies and then compiles the gem. It may be useful if you are trying to figure out the complete set of dependencies.
## INSTALLATION
Note that this compiles the underlying c code, which might take 10-20 minutes or so
gem install decc_2050_model
## UPDATING TO NEWER VERSIONS OF EXCEL MODEL
First of all, you need to be working on the github version of the code, not the rubygem:
git clone http://github.com/decc/decc_2050_model
Then put the new spreadsheet in spreadsheet/model.xlsx
Then, from the top directory of the gem:
bundle
bundle exec rake
The next step is to check whether Rakefile, lib/model/_model_result.rb and lib/model/model_structure.rb need to be altered so that they
pick up the correct places in the underlying excel.
The final stage is to build and install the new gem:
gem build model.gemspec
gem install decc_2050_model-<version>.gem
... where <version> is the version number of the gem file that was created in the folder.
Now follow the instructions in the twenty-fifty server directory in order to ensure that it is using this new version of the gem.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
Activity
0.01
Using an existing xlsx file as a template, it allows you to modify cell values and add rows and columns. Facilitating a templateized approach to creating a new xlsx spreadsheet
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024