A Ruby library for reading and parsing spreadsheet files (Excel, OpenOffice, CSV) with a unified interface.
Roo is a Ruby library that provides a unified interface for reading and parsing spreadsheet files in various formats, including Excel (xlsx, xlsm, xls), OpenOffice/LibreOffice (ods), and CSV. It solves the problem of extracting data from spreadsheets without needing separate tools or dealing with format-specific complexities, offering consistent methods to access sheets, rows, columns, and cell data across all supported formats.
Ruby developers who need to programmatically read and process spreadsheet data from applications, such as those handling data imports, reporting tools, or automation scripts that interact with Excel or OpenOffice files.
Developers choose Roo because it consolidates spreadsheet reading into a single, easy-to-use Ruby gem with a consistent API across multiple formats, eliminating the need for separate libraries. Its support for advanced features like streaming, encrypted files, and data export makes it a versatile solution for spreadsheet data extraction.
Roo provides an interface to spreadsheets of several sorts.
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 single interface to read Excel, OpenOffice, and CSV files, abstracting format-specific complexities as highlighted in the philosophy section.
Offers row streaming for Excelx files with options like offset and max_rows, allowing memory-efficient processing of large spreadsheets.
Can handle password-protected OpenOffice/LibreOffice spreadsheets, a feature not common in all spreadsheet libraries.
Includes methods like parse with headers, cleaning, and header search options for easy data extraction and mapping.
Requires separate gems (roo-xls, roo-google) for older Excel formats and Google Sheets, adding complexity to dependency management.
Only supports reading spreadsheets; exporting is limited to formats like CSV and XML, not back to native spreadsheet files.
The README notes a planned major release for better Ruby 3.x compatibility, indicating potential issues or instability with current versions.