A Ruby library for easily generating XLSX, ODS, and CSV spreadsheets from ActiveRecord relations, plain Ruby objects, or tabular data.
Spreadsheet Architect is a Ruby library that enables developers to generate XLSX, ODS, and CSV spreadsheets with minimal effort. It solves the problem of cumbersome spreadsheet creation by providing a simple API that works with ActiveRecord relations, plain Ruby objects, or custom tabular data, handling formatting, multi-sheet exports, and Rails integration out of the box.
Ruby and Rails developers who need to export data as downloadable spreadsheets for reporting, data dumps, or user-facing exports in their applications.
Developers choose Spreadsheet Architect for its dead-simple API, extensive styling options, and seamless Rails integration, allowing them to generate professional spreadsheets without dealing with low-level spreadsheet library complexities.
Spreadsheet Architect is a library that allows you to create XLSX, ODS, or CSV spreadsheets super easily from ActiveRecord relations, plain Ruby objects, or tabular data.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Provides a dead-simple interface to generate spreadsheets from arrays, ActiveRecord relations, or Ruby objects, with clear examples like SpreadsheetArchitect.to_xlsx(headers: headers, data: data).
Generates XLSX, ODS, and CSV files from the same codebase, including Rails renderers for seamless response handling with formats like :xlsx and :csv.
Offers comprehensive styling options via Axlsx, including conditional formatting, merges, and borders, with a detailed style reference documented separately.
Includes built-in ActionController renderers that allow direct spreadsheet rendering in Rails responses, simplifying controller code as shown in the examples.
Built-in protection against formula injection from untrusted input via the escape_formulas option, though headers are not covered.
ODS format supports only basic styling options like background_color and bold, with date/time types forced to strings due to RODF bugs, as noted in the options table.
Using ActiveRecord relations or instance arrays can lead to high memory usage, prompting the README to recommend the :data option for large datasets and external gems like light_record.
Features like conditional_row_styles and merges require intricate array configurations that are error-prone, as evidenced by the kitchen sink examples needing manual validation.
The escape_formulas option does not apply to header cells, leaving a potential vulnerability if headers incorporate user-supplied data without manual escaping.